为什么允许这样做?当你继承使用这个范例的代码时,这是非常令人困惑的...特别是当所述代码甚至不打扰官方声明公共属性时,而是用一些随机方法设置它.有没有办法防止它(更改设置,使用某些关键字或使用界面)?
class Collision
{
public $Sort = "sort property";
public function Sort()
{
print 'sort function called<br/>';
return 'sort function return';
}
}
$a = new Collision();
print $a->Sort . '<br/>';
print $a->Sort() . '<br/>';
Run Code Online (Sandbox Code Playgroud)
输出:
sort property
sort function called
sort function return
Run Code Online (Sandbox Code Playgroud)
这是允许的,因为 PHP 区分属性和方法。当访问它们时,PHP 使用函数括号 () 的存在(或不存在)来确定是否正在引用属性或方法。因此,对于计算机来说没有任何歧义,尽管它可能会让人类感到困惑 =)
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |