使用下划线(_)作为PHP函数名称

时间:2012-12-05 13:07:16

标签: php

根据http://php.net/manual/en/functions.user-defined.php,我应该能够使用下划线(_)作为函数名称:

  

函数名称遵循与PHP中其他标签相同的规则。一个有效的   函数名称以字母或下划线开头,后跟任何字符   字母,数字或下划线的数量。作为正则表达式,   它将如此表达:[a-zA-Z_ \ x7f- \ xff] [a-zA-Z0-9_ \ x7f- \ xff] *。

但是,以下命令会导致我的程序失败而不会导致任何错误:

error_reporting(E_ALL);
echo('start');
function _($x){return ($x)?htmlspecialchars($x):'nbsp;';}
echo('end');

我使用的是PHP版本5.3.18。我不明白的是什么?

2 个答案:

答案 0 :(得分:14)

已经有一个名为_的内置函数;它是gettext的别名。

您可能会收到Fatal error: Cannot redeclare _(),但可能无法将错误输出到您的屏幕,具体取决于您display_errors的设置。您还可以查看log_errors指令。

答案 1 :(得分:3)

正如cbuckley所说,已经定义了名为gettext的{​​{1}}别名。如果您启用了gettext,则会使用_名称。

最好使用双下划线(_)。我经常使用它。或者你禁用了gettext。