在查看各种PHP库时,我注意到很多人 Select 在某些类方法前面加上一个下划线,例如

public function _foo()

...而不是

public function foo()

我意识到这归根结底取决于个人喜好,但我想知道是否有人知道这个习惯是从何而来的.

我的 idea 是,在类方法被标记为protected或private之前,它可能是从PHP4继承下来的,这意味着"不要从类外调用这个方法".然而,我也想到,它可能起源于我不熟悉的某个地方(一种语言),或者它背后可能有很好的理由,让我从中受益.

如有任何 idea 、见解和/或意见,将不胜感激.

推荐答案

它来自面向对象PHP(PHP4)糟糕的旧时代.OO的实现非常糟糕,没有包括私有方法之类的东西.为了弥补这个不足,PHP开发人员预先准备了一些方法,这些方法本来是私有的,但带有下划线.在一些较老的课程中,你会看到/**private*/ __foo() {来增加它的重量.

我从来没有听说过开发人员在所有方法的前面都加下划线,所以我无法解释是什么原因造成的.

Php相关问答推荐

从WooCommerce邮箱通知中的订单详细信息中删除产品列表

在WooCommerce中执行一次银行电汇确认付款代码

邮箱打开跟踪器不工作时发送邮件使用laravel调度程序

启用额外的WooCommerce产品库存位置

有什么方法可以阻止WordPress主题升级通知吗?

WooCommerce基于元数据的自定义范围目录排序

保存PHP条带以备将来使用,不显示用户界面

Laravel集合块()方法

获取要删除的图像的公共ID

创建一个新的可变产品及其属性以用于WooCommerce中的变体

如何在PHP中出现弃用警告时触发错误?

PHP:使用FORT从数据库获取USERS表到AUTH表

ANTLR4-lexer如何消耗更多的 token 并停止现有规则?

如何使用 PHP 将带有图像的文本上传到 Linkedin?

通过添加计数器修改文本区域表单中的重复值

如何限制 woocommerce 中相关产品的标题长度

如何判断php中wordpress路径之外的文件夹是否存在?

使用 wp_footer 挂钩添加一些 CSS 不起作用

PHP for each 函数打印 td

我想更新表格中的结果并将它们发布到浏览器,但它不起作用