是否有任何理由在方法和成员变量名称之前使用“public”关键字?

Nat*_*ate 1 php

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

class SomeClass {
    public $data;

    public function someFunction() {

    }
}
Run Code Online (Sandbox Code Playgroud)

在 PHP 中是否有任何理由在方法和成员变量名称之前使用public关键字,或者清晰是某些人这样做的唯一原因?

Jak*_*uld 6

\n

public是否有任何理由在 PHP 中的方法和成员变量名称之前使用关键字,或者清晰是某些人这样做的唯一原因?

\n
\n\n

原因是清晰度。

\n\n

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

\n\n

这\xe2\x80\x99是我们缩进并正确格式化代码的部分原因。只要语法正确,语言解释器就会吃掉任何代码。其他任何东西\xe2\x80\x94(包括注释\xe2\x80\x94)都放置在那里,因此我们键盘前的肉实际上可以对正在发生的事情有所了解。

\n\n

使用您的伪代码示例:

\n\n
class SomeClass {\n    public $data;\n\n    public function someFunction() {\n\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
class cName { $d; function fName() {} }\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

清晰性是良好编码和开发的真正关键。这个世界编程和计算机工作是不可见的\xe2\x80\x94,有时\xe2\x80\x94 本身就足够迟钝了。没有理由通过忽略人类\xe2\x80\x94而不是机器\xe2\x80\x94创建代码这一事实来掩盖某些东西是如何工作的。

\n