【问题标题】:PHP function name starting with ONE underscore [duplicate]以一个下划线开头的PHP函数名称[重复]
【发布时间】:2023-05-20 19:59:01
【问题描述】:

我正在编写一个庞大的 PHP 类,并开始意识到我缺乏一些 PHP 编码约定的知识,这些知识可以帮助我整理一下。

我的问题是关于在 PHP 函数名称前使用一个下划线(不是两个,我知道两个下划线的作用):

  • 它实际上是私有函数的 PHP 约定吗?
  • 它是否以任何方式被某些框架、模板引擎等解释为特定的东西? (就像 /** 被 PHPdocumentor 捕获)
  • 除了能够立即判断一个函数是公共的还是私有的之外,还有什么优点吗?

【问题讨论】:

  • PHP 应用程序中使用了许多种不同的约定。不过,您走在正确的轨道上……很多人使用下划线来表示函数是私有的。
  • 使用 php codesniffer 检查您的 php 文件
  • 你可以在下面找到答案:) [这是为了澄清PHP4中旧OOP中php函数中下划线的含义][1] [1]:*.com/questions/663350/…
  • 感谢您的回答!不确定如何编写“好”代码是业余爱好者最烦人的部分:我总是在猜测自己并最终为展示我的代码感到羞耻...... ;-)
  • 确实,这个问题可能已经被“PHP 类方法中的前导下划线是怎么回事”回答了,但只是部分地,因为我想知道上面的第 2) 和 3) 点, 也。无论如何,谢谢大家的回答!

标签: php


【解决方案1】:

前导下划线的使用在某种程度上是由意见决定的,尽管它可以被视为匈牙利符号的一种形式,是程序员用来了解它是什么类型的函数的“拐杖”。

不考虑魔术方法,双下划线表示私有方法,而单下划线表示受保护方法。

引入此约定是因为 PHP 4 OOP 没有可见性修饰符,例如 protectedprivate。随着 PHP 5 的推出,您不再需要它。

【讨论】: