PHP允许类函数和属性共享同一个名字吗?

deyfvvtc  于 2023-01-16  发布在  PHP
关注(0)|答案(4)|浏览(143)

我的一位老同事在我们的代码中写道:

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

我在想:这是返回函数paginate()还是类属性$paginate?
我猜是后者,但奇怪的是,我没有找到任何关于这个问题的信息。

sqxo8psd

sqxo8psd1#

它返回类属性$paginate
如果是return $this->someName();
那么它返回函数someName()

bbuxkriu

bbuxkriu2#

PHP中函数调用后的括号不是可选的,普通的方法和函数不是“第一类对象”(它们本身不能作为变量来操作,例如在JavaScript中)。
这样就没有歧义,因为$this->paginate();必须是函数调用,而$this->paginate;必须是变量引用。
然而,这并不是特别好的做法,编辑、IDE等可能会强调这是一个警告。
通常的做法是函数和方法以动词开始(它做什么),属性名以名词开头(它是什么),所以属性应该是“pagination”,方法可以是"paginate"(获取数据并创建一些分页),也可以是“getPagination”(返回“pagination”属性)。

svdrlsy4

svdrlsy43#

返回对象属性:

$this->paginate;

对比
使对象方法运行(类中的函数称为方法)

$this->paginate();
4ioopgfo

4ioopgfo4#

它将返回函数所属类的$paginate属性,或者如果声明为public,则返回来自另一个类的属性。

相关问题