网上有很多这两个例子。 php手册中写着“include()语句[...]”,这似乎是矛盾的 - 如果它是一个声明,它不应该没有括号吗?
这两项工作都是:
include('somefile.php');
include 'somefile.php;
我或其他任何人都应该关心吗?
答案 0 :(得分:30)
从手册中引用(我的重点)
因为include()是特殊语言构造,所以围绕其参数的括号不。
这些也称为“特殊表单”,包括echo
和return
语句。请注意,虽然这些都不是函数,但您仍然可以使用表达式和语句,区别在于前者具有值而后者不具有值。由于include
,include_once
,require
和require_once
都返回值(如果包含成功,则为TRUE
),因此可以在表达式中使用它们。通过这种推理,“include语句”是不正确的,尽管include
几乎总是用作语句。
答案 1 :(得分:9)
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';
}
答案 2 :(得分:5)
括号是函数的参数。
使用include
,您可以将其用作php中的函数或语句。
因为include()是一种特殊的语言结构,所以括号不是 需要围绕它的论点。
此处的文档:http://php.net/manual/en/function.include.php
使用echo
相同的概念,引用PHP手册here
echo实际上并不是一个函数(它是一种语言结构),所以你 不是必需使用括号。回声(与其他一些不同 语言结构)不像一个函数,所以它不能 总是在函数的上下文中使用。
答案 3 :(得分:1)
parens中的单个值会评估值本身,因此parens本身并不重要。
答案 4 :(得分:1)
两者。在PHP文档的许多方面,所有内容都被称为语句。示例(来自控制结构) - “语句可以是赋值,函数调用,循环,条件语句,甚至不执行任何操作的语句(空语句)。”
语句和函数之间的区别在于单个语言的语义。因此,PHP维护者要么明确地定义它,要么让它保持模棱两可。
答案 5 :(得分:1)
include
,require
,echo
,print
以及少数其他关键字是自己的语言构造,而不是函数调用,并且不需要括号。然而,有些人喜欢假装他们是函数调用并且无论如何都使用括号。它们完全相同。
答案 6 :(得分:0)
对于echo总是使用 echo“test”
<?php
// this will give you error
echo ("test","test");
//that will work fine
echo "test","test";
?>
答案 7 :(得分:-1)
只有一个参数的语句也可以有括号,例如:
echo ('hello world');
答案 8 :(得分:-1)
我相信唯一的区别就是你想要做的事情。
例如,这两个
echo 'Hello World';
echo ('Hello World');
...同时打印 Hello World 。
这正是你想要做的,你最满意的,如果你像我一样,你想让你的剧本看起来漂亮:D