PHP require/include 编码实践

6

好奇问一下......在编写require/include语句时,你更喜欢哪种最佳实践?

require('filename.php');

或者

require 'filename.php';

谢谢!

1个回答

9

始终使用后者 - 对于echoprint和其他语言结构也是如此。 永远不要在语言结构后添加额外的括号!

原因很简单:使用括号会让你认为require是一个函数 - 实际上它不是!例如:

if (require('file.php') == false) {
    // do stuff
}

你 - 甚至大多数资深PHP开发者 - 可能会认为这比较了 require 的返回值。但实际上并不是这样的!PHP将其解释为:

if (require (('file.php') == false)) {
    // do stuff
}

which is:

if (require '') {
    // do stuff
}

如果您在语言结构中使用括号,您也可以编写:

require(((((((((((((((((((('file.php'))))))))))))))))))))

或者你会写出这样的代码:

array(('hi'));

那只是同样的无稽之谈。

永远不要在语言结构中使用括号。所以你永远不会使用带参数的arrayexit?这实际上是一个运算符优先级问题,而且还是一个相当牵强的问题。问题中没有建议检查不存在的返回值。如果你确实写了require('file.php') == false,你会立即得到致命错误。因此,不存在微妙的错误可能性。 - Matthew Flaschen
3
@Metthew: 在使用 array 时,括号是该语句结构的一部分。但是,在使用 require 时,它们不是必须的,无法省略。 - NikiC
谢谢你,nikic!我已经使用require('filename.php')将近两年了,直到我遇到一个带有 require 'filename.php' 语法的代码...然后产生了好奇心...感谢你的解释! :D - Woppi

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