成员变量和成员函数具有相同的名称

时间:2010-03-03 13:35:44

标签: php

class test {
    public $isNew;
    public function isNew(){}
}

$ins = new test();
$ins->isNew

这里,php如何解析$ins->isNew

4 个答案:

答案 0 :(得分:30)

PHP不是函数编程语言,其中函数也是数据。因此$ins->isNew引用方法isNew或属性isNew不会模棱两可。 $ins->isNew始终是一个属性,$ins->isNew()是方法调用。

答案 1 :(得分:5)

$ins->isNew是变量。 $ins->isNew()就是这个功能。

答案 2 :(得分:4)

请参阅PHP手册中的Class Basic章节:

$ins->isNew   // class member
$ins->isNew() // class method

答案 3 :(得分:0)

请参见PHP手册中的下一节Variable functions

PHP支持变量函数的概念。这意味着,如果在变量名后加上括号,PHP将查找与该变量求值的函数名称相同的函数,并尝试执行该函数。除其他外,它可以用于实现回调,函数表等。