【发布时间】:2025-12-05 11:55:02
【问题描述】:
网络上有很多这两种方法的例子。 php手册说“include()语句[...]”,这似乎是矛盾的——如果它是一个语句,它不应该没有括号吗?
这两项工作:
include('somefile.php');
include 'somefile.php;
所以我或其他人应该关心吗?
【问题讨论】:
-
不,没有任何理由的人不应该在意。
网络上有很多这两种方法的例子。 php手册说“include()语句[...]”,这似乎是矛盾的——如果它是一个语句,它不应该没有括号吗?
这两项工作:
include('somefile.php');
include 'somefile.php;
所以我或其他人应该关心吗?
【问题讨论】:
引用手册(我的重点)
由于 include() 是一种特殊的语言结构,因此不需要在其参数周围使用括号。
这些也称为“特殊形式”,包括echo 和return 语句等内容。请注意,虽然这些都不是函数,但您仍然可以谈论表达式和语句,区别在于前者有值,而后者没有。由于include、include_once、require 和require_once 都返回一个值(如果包含成功则为TRUE),它们可以在表达式中使用。按照这种推理,“include 语句”是不正确的,尽管 includes 几乎总是用作语句。
【讨论】:
1+2 将返回一个值 3,并且可以将其分配给变量 $x = 1+2 );返回值不限于函数
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';
}
【讨论】:
include 周围加上括号并不排除在参数周围加上括号。 if ( (include('vars.php')) == 'OK' ) { echo 'OK'; }.
括号是函数的参数。
使用include,您可以将其用作函数或 php 中的语句。
因为 include() 是一种特殊的语言结构,所以括号不是 需要围绕它的论点。
此处的文档:http://php.net/manual/en/function.include.php
与echo相同的概念,引用自PHP手册here
echo 实际上不是一个函数(它是一种语言结构),所以你 不是必须使用括号。回声(不像其他一些 语言结构)的行为不像函数,所以它不能 总是在函数的上下文中使用。
【讨论】:
括号中的单个值会根据值本身进行计算,因此括号本身没有任何影响。
【讨论】:
两者兼而有之。在 PHP 文档的许多领域中,所有内容都称为语句。示例(来自控制结构)-“语句可以是赋值、函数调用、循环、条件语句,甚至是什么都不做的语句(空语句)。”
语句和函数之间的区别在于各个语言的语义。因此,由 PHP 维护人员来明确定义它,或者让它保持模棱两可。
【讨论】:
include、require、echo、print 和少数其他关键字本身是语言结构,而不是函数调用,并且不需要括号。然而,有些人喜欢假装他们是函数调用并使用括号。它们是相同的。
【讨论】:
对于 echo,请始终使用 echo "test"
<?php
// this will give you error
echo ("test","test");
//that will work fine
echo "test","test";
?>
【讨论】:
只有一个参数的语句,也可以有括号,例如:
echo ('hello world');
【讨论】:
我相信唯一的区别是你想做什么。
比如这两个
echo 'Hello World';
echo ('Hello World');
...都打印 Hello World。
这只是你想做的,你觉得最舒服的,如果你像我一样,你想让你的脚本看起来漂亮:D
【讨论】: