PHP - 破坏说明
PHP - destruct clarification
我正在学习 PHP 的 OOP,我正在努力解决这个问题:
我在我的 MAMP 安装上使用 php 版本 5.6.10,如果这有什么不同??
这是我的代码:
<?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 的新实例时 class,它会自动销毁。这使我无法更改老板的"evilness"。
如何更改代码,或者 php 设置不自动调用 destruct(),而仅使用 unset()
函数调用其他方法class?
变化
我已经更新了拼写错误,但提供的答案仍然适用。
我测试了下面的代码,它有效吗?您必须在 changeEvilness 函数
中将 $this->$evilness
更改为 $this->evilness
<?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 进程并调用析构函数。
我正在学习 PHP 的 OOP,我正在努力解决这个问题:
我在我的 MAMP 安装上使用 php 版本 5.6.10,如果这有什么不同??
这是我的代码:
<?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 的新实例时 class,它会自动销毁。这使我无法更改老板的"evilness"。
如何更改代码,或者 php 设置不自动调用 destruct(),而仅使用 unset()
函数调用其他方法class?
变化 我已经更新了拼写错误,但提供的答案仍然适用。
我测试了下面的代码,它有效吗?您必须在 changeEvilness 函数
中将$this->$evilness
更改为 $this->evilness
<?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 进程并调用析构函数。