有什么理由在方法和成员变量名称之前使用“public”关键字吗? [重复]

问题描述 投票:0回答:3

我读到,方法和成员变量在 PHP 中默认是公共的,但我看到的许多代码示例前面都有

public
关键字。例如:

class SomeClass {
    public $data;

    public function someFunction() {

    }
}

是否有任何理由在 PHP 中的方法和成员变量名称之前使用

public
关键字,或者清晰是某些人这样做的唯一原因?

php
3个回答
7
投票

是否有任何理由在方法和方法之前使用

public
关键字 PHP 中的成员变量名称,或者是清晰度某些的唯一原因 人们这样做吗?

原因是清晰。

人类正在编写这些东西。人类需要阅读这些东西。如果人类无法快速解读正在发生的事情,缺乏清晰度可能会导致更多问题。

这也是我们缩进并正确格式化代码的部分原因。只要语法正确,语言解释器就会吃掉任何代码。其他任何内容(包括评论)都放置在那里,这样我们键盘前的肉实际上可以理解正在发生的事情。

使用您的伪代码示例:

class SomeClass {
    public $data;

    public function someFunction() {

    }
}

看看它是多么容易阅读并理解它是如何工作的!相比之下,看看这个:

class cName { $d; function fName() {} }

从技术上讲,这两段代码应该工作相同。但

$d
是什么?什么是
cName
?什么是
fName
?该代码在这两种情况下都可以工作,但是谁愿意花时间来解开第二个示例。我的意思是,它有效,对吗?

清晰是良好编码和开发的真正关键。这个世界的编程和计算机工作是看不见的——有时甚至是足够迟钝的。没有理由通过忽略人类(而不是机器)创建代码的事实来掩盖某些东西是如何工作的。


5
投票

指定“public”与不指定“public”之间没有功能上的区别。 该代码没有任何好处,也不会因此而产生任何退化。

请记住,您的代码是为两个实体编写的:编译器和必须维护代码的人员。 这种清晰度是巨大的。


2
投票

我个人的看法是,还是说清楚比较好。没有歧义。我还认为所有成员变量都应该使用适当的 getter/setter 进行保护或私有。

它还有助于编写代码文档 - 例如 DOxygen

© www.soinside.com 2019 - 2024. All rights reserved.