使用 require_once('filename.php') 还是 require_once 'filename.php' 更好?(涉及 IT 技术)

39

这只是一种风格上的差异,还是使用require_once('filename.php')require_once 'filename.php'会有实际的负载/效率差异?

答:没有实际的负载/效率差异。两种语法形式都可以用来包含文件并保证只被包含一次,它们之间只是语法上的差异。

在括号的情况下,只是要多打一个字符。 - bcosca
我发现两者的行为不同。一个路径使用dirname编写,另一个相对于站点根目录工作。非常奇怪。 - James P.
5个回答

38

20

这完全是同一件事。这只是个风格问题。

有时候括号可能会妨碍你的编码。例如,手册中的这个例子并不会按照你的期望执行:

if (include('vars.php') == 'OK') {
    echo 'OK';
}

请参见示例#4


7
但这不是由括号引起的。 - Gumbo
我认为你应该在回答中包含它的真正作用。 ('vars.php') == 'OK' 被解释为 include 的参数,就像 if (include(('vars.php') == 'OK')) { 中一样。这就是为什么您应该避免使用括号,以免导致错误的结论。 - PhoneixS

12

你的内心告诉你什么?

性能差异(如果有):可以忽略不计。


4
我喜欢这可以成为编程问题的一个有效答案! - Michael Hinds

7

其实没有什么区别。我不使用括号是因为它们不是必需的。require_once 不是一个函数。


2
“is no function”并不意味着括号是不必要的(请参见isset等)。 - Artefacto
这不是我的意思 - 我只是提一下 ;) - dst

1

includeinclude_oncerequirerequire_once 不是函数,它们是语句,因此不应使用 ()

此外,请参考 php.net 上的说明:

<?php

// won't work
if (include('vars.php') == TRUE) {
    echo 'OK';
}

// works
if ((include 'vars.php') == TRUE) {
    echo 'OK';
}

?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接