php的“include”是函数还是语句?

2022-08-30 20:33:32

网络上有很多两者的例子。php手册说“include()语句[...]”,这似乎是矛盾的 - 如果它是一个语句,它不应该有括号吗?

这两个工作:

include('somefile.php');
include 'somefile.php;

那么我或其他任何人应该关心吗?


答案 1

引用手册(我的强调)

因为 include() 是一种特殊的语言构造所以不需要在其参数两边加上括号。

这些也被称为“特殊形式”,包括和语句之类的东西。请注意,虽然这些都不是函数,但您仍然可以谈论表达式和语句,区别在于前者具有值,而后者则没有。由于 、 和 都返回一个值(如果包含成功),因此它们可以在表达式中使用。根据这种推理,“包含语句”是不正确的,尽管 s 几乎总是用作语句。echoreturnincludeinclude_oncerequirerequire_onceTRUEinclude


答案 2

包括是一个语句 :通过以下方式解释例如

// won't work, evaluated as include(('vars.php') == 'OK'), i.e. include('')
if (include('vars.php') == 'OK') {
    echo 'OK';
}

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

推荐