упс — уничтожить разъяснение

Я только учусь ООП с PHP, и я пытаюсь разобраться в этом:

Я использую версию 5.6.10 php на моей установке MAMP, если это имеет значение ??

Этот код у меня есть:

<?php

class Baddie {
public $evilness = 10;
}

class Boss extends Baddie {
public $evilness = 50;

public function changeEvilness($value)
{
//$this->$evilness = $value; Had this, which was a typo
$this->evilness = $value;
}

public function __destruct() {

echo "You beat the boss!";
}

}

$ganon = new Boss;

?>

//Note the code is from Rob Percivals Udemy course, hence the gaming references.

Поэтому, когда я вызываю новый экземпляр класса Boss, он автоматически уничтожается. Это мешает мне изменить «зло» босса.

Как мне изменить код, или, может быть, настройку php, что destruct () вызывается не автоматически, а только с unset() функция, чтобы я мог вызывать другие методы с этим классом?

изменения
Я обновил ошибку опечатки, но предоставленные ответы все еще применяются.

0

Решение

Я проверил код ниже, и он работает? Вы должны изменить $this->$evilness в $this->evilness в функции changeEvilness

<?php

class Baddie {
public $evilness = 10;
}

class Boss extends Baddie {
public $evilness = 50;

public function changeEvilness($value)
{
$this->evilness = $value;
}

public function __destruct() {

echo "You beat the boss!";
}

}

$ganon = new Boss;
echo $ganon->evilness ."\n";
$ganon->changeEvilness(1337);
echo $ganon->evilness ."\n";
?>

это выводит:

50
1337
You beat the boss!

Итак, как вы можете видеть, constructor, changeEvilness() функция и destructor все звонят.

Также полезно знать, что процесс php заканчивается, когда достигается последняя строка кода. Так как у вас ничего нет после $ganon = new Boss, он остановит процесс php и вызовет деструктор.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector