网上有很多这两个例子.php手册说"include()语句[...]",这似乎是矛盾的 - 如果它是一个声明,它不应该没有括号吗?
这两项工作:
include('somefile.php');
include 'somefile.php;
Run Code Online (Sandbox Code Playgroud)
我或其他任何人都应该关心吗?
Mar*_*ker 30
引自手册(我的重点)
由于包括()是一个特殊的语言结构,在括号不是需要围绕它的参数.
这些也被称为"特殊形式",包括诸如echo
和return
陈述之类的东西.请注意,虽然这些都不是函数,但您仍然可以使用表达式和语句,区别在于前者具有值而后者不具有值.由于include
,include_once
,require
和require_once
所有的返回值(TRUE
如果包括成功),他们可以在表达式中使用.通过这种推理,"include语句"将是不正确的,尽管include
s几乎总是用作语句.
include是一个声明:通过以下说明解释
// 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';
}
Run Code Online (Sandbox Code Playgroud)
括号是函数的参数.有了include
你可以用它无论是作为一个功能或PHP的声明.
因为include()是一种特殊的语言结构,所以在其参数周围不需要括号.
文档:http://php.net/manual/en/function.include.php
使用echo
相同的概念,在这里引用PHP手册
echo实际上不是一个函数(它是一个语言结构),所以你不需要使用括号.echo(与其他一些语言结构不同)的行为不像函数,所以它不能总是在函数的上下文中使用.