一个对象的方法是否应该能够访问同一类的另一个对象的受保护属性?
我正在用 PHP 进行编码,我刚刚发现一个对象的受保护属性可以被同一个类的方法访问,即使不是同一个对象。
在该示例中,首先,您将在输出中得到“3” - 因为函数 readOtherUser 将成功访问该值 - 之后将发生 PHP 致命错误 - 因为主程序将无法访问相同的值。
<?php
class user
{
protected $property = 3;
public function readOtherUser ()
{
$otherUser = new user ();
print $otherUser->property;
}
}
$user = new user ();
$user->readOtherUser ();
print $user->property;
?>
这是 PHP 错误还是预期的行为(我必须重新学习这个概念......:))(是否有事实参考)?在其他编程语言中是如何完成的?
Thanks!
这是有意的。甚至可以访问同一类的私有成员。因此,将修饰符视为类修饰符,而不是对象修饰符。
PHP 并不是唯一具有此功能的语言。例如Java也有这个。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)