2013-04-03 40 views
6

我的一个老同事的我们的代码写了这个:PHP允许类函数和属性共享相同的名称吗?

public function paginate() { 
    return $this->paginate; 
} 

,我想知道:这是否返回功能PAGINATE()或类属性$ PAGINATE?

我在猜测后者,但奇怪的是我还没有找到关于此主题的任何信息。

+0

为什么你没有尝试过自己。 – 2013-04-03 08:08:21

+1

因为PHP有​​许多隐藏/自动/魔术行为,可能会被简单的测试遗漏! – CoR

回答

5

返回类属性$paginate

如果是return $this->someName();

然后返回功能someName()

0

它将返回该功能属于或ihnerits从另一个类,如果它被声明为public类的$paginate财产。

1

返回一个对象属性:

$this->paginate; 

VS

导致对象方法来运行一个函数调用后(在一个类的函数被称为方法)

$this->paginate(); 
2

托架在PHP中不是可选的,普通的方法和函数不是“第一类对象”(它们不能作为变量进行操作,例如在JavaScript中)。

因此,不存在歧义,因为$this->paginate();必须是函数调用,并且$this->paginate;必须是变量引用。

但是,这不是特别好的做法,编辑,IDE等可能会突出显示它作为警告。一般来说,函数和方法应该以动词而不是名词开头,所以函数会更好地命名为getPaginate()

相关问题