我创建了一个名为Player
的新类,其中包含2个属性:
name
ID
我不知道以下代码对我有何影响,这就是我问你的原因:
<?php
$player = new Player();
$player->name = "Someone";
$player->ID = 123;
$player->color = "Red"; // Why it worked?
echo $player->color; // Worked great too!
?>
我可以设置一个属性color
并在我甚至没有在我的类文件中声明它时使用它。怎么可能?
答案 0 :(得分:3)
在PHP中,该功能称为property overloading(“重载”术语为misused!它应该类似于“解释器挂钩”,而不是)。
PHP中的重载提供了动态“创建”属性和方法的方法。 qoute
您可以使用动态属性,就像它们已在类定义中声明一样;像:
class A {
}
$a = new A();
$a->myProperty = 'something';