【发布时间】:2021-06-01 12:44:31
【问题描述】:
class Base
{
private $firstName;
private $lastName;
function setName($firstName, $lastName){
$this->firstName = $firstName;
$this->lastName = $lastName;
}
function __isset($property){
return empty($this->$property);
}
}
$ob = new Base();
$ob->setName("Hello", "world");
if (empty($ob->firstName)) {
echo "exist";
} else {
echo "not exist";
}
// Output: exist
我不明白为什么输出是exist。
魔术方法返回true,但实际上它应该返回false,因为我已经设置了属性。
【问题讨论】:
-
我想如果你设置了值,
return empty($this->$property);会返回 false,因为值不为空。 -
是的,它应该返回 false,但它返回 true
标签: php oop magic-methods