php函数中的下划线

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

PHP 函数名以下划线开头是什么意思?

例如:

__construct()

我知道该构造的含义,但我见过其他地方函数以下划线或双下划线开头,我只是不确定其意义。

php
5个回答
21
投票

这意味着 PHP 隐式调用它。

这被称为“魔法方法”

另外,它是两个下划线,而不是一个。

在这里了解更多:PHP 魔法方法


5
投票

在 PHP 中,以两个下划线开头的函数通常具有特殊含义。从手册:

PHP 保留所有函数名称 以 __ 开头的神奇。这是 建议您不要使用 PHP 中带有 __ 的函数名称除非 你想要一些记录在案的魔法 功能。

例如 __construct() 是一个特殊方法,在初始化对象时会自动调用。

也可以:http://php.net/manual/en/language.oop5.magic.php


4
投票

还有一种常见的命名“编码风格”,它使用一个开头的下划线来指示方法或属性是私有的/受保护的。我认为这很普遍。


1
投票

正如其他答案中所述,双下划线用于“魔术”方法。 这个想法是,用户永远不会故意使用两个下划线作为方法名称,因此几乎没有冲突的风险。 我认为,它不是单个下划线的原因是,在“private”关键字出现以强制面向对象的私有性之前,单个下划线是旧时代私有方法的流行约定。


0
投票

在codeigniter中,如果您在控制器中使用下划线启动一个方法,路由器将知道不允许从该url访问它。

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