Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是php';s';包括';函数还是语句?_Php_Include - Fatal编程技术网

是php';s';包括';函数还是语句?

是php';s';包括';函数还是语句?,php,include,Php,Include,在网络上有很多这两方面的例子。php手册上说“include()语句[…]”,这似乎是矛盾的——如果它是一个语句,它不应该有括号吗 这两项工作: include('somefile.php'); include 'somefile.php; 因此,我或其他任何人是否应该关心?参数中的单个值计算为值本身,因此参数本身并不重要。只有一个参数的语句也可以有括号,例如: echo ('hello world'); 引用手册(我的重点) 因为include()是一种特殊的语言构造,所以在其参数周围不

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

这两项工作:

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

因此,我或其他任何人是否应该关心?

参数中的单个值计算为值本身,因此参数本身并不重要。

只有一个参数的语句也可以有括号,例如:

echo ('hello world'); 
引用手册(我的重点)

因为include()是一种特殊的语言构造,所以在其参数周围不需要括号

这些也被称为“特殊形式”,包括
echo
return
语句。请注意,虽然这些都不是函数,但您仍然可以谈论表达式和语句,区别在于前者有值,而后者没有值。由于
include
include_once
require
require_once
都返回一个值(
TRUE
,如果include成功),它们可以在表达式中使用。根据这种推理,“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';
}

两者都有。在PHP文档的许多领域中,所有内容都被称为语句。示例(来自控制结构)-“语句可以是赋值、函数调用、循环、条件语句,甚至是不执行任何操作的语句(空语句)。”


语句和函数之间的区别在于不同语言的语义。因此,PHP维护人员要么明确定义它,要么让它保持模棱两可。

包括
要求
回音
打印
,还有一些其他关键字本身就是语言构造,而不是函数调用,不需要括号。然而,有些人喜欢假装自己是函数调用,并使用括号。它们是一样的。

我相信唯一的区别是你想做什么

比如说这两个,

echo 'Hello World';
echo ('Hello World');
…都打印了Hello World


这正是你想做的,你觉得最舒服的,如果你像我一样,你想让你的脚本看起来漂亮:D

括号是函数的参数。 使用
include
可以将其用作php中的函数或语句

因为include()是一种特殊的语言构造,所以括号不是 需要围绕它的论点

此处的文档:

使用
echo
相同的概念,引用PHP手册

echo实际上不是一个函数(它是一种语言构造),因此 不需要使用括号。回声(与其他声音不同) 语言构造)的行为不像函数,因此它不能 始终在函数的上下文中使用


对于echo,始终使用echo“测试”



note,没有一定的理由就不应该在意。这确实不是一个负面的例子,因为在
include
周围加括号并不妨碍在参数周围加括号
if((include('vars.php')=='OK'){echo'OK';}
。如果它们不是函数,它们如何才能“返回”某物?@Marc.2377,就像php中的大多数表达式可以返回某物一样(例如,表达式
1+2
将返回一个值
3
,并且可以分配给变量
$x=1+2
);返回值不限于函数感谢澄清。我希望手册能像这个答案那样技术性和完整。
<?php 
// this will give you error
echo ("test","test");

//that will work fine
echo "test","test";
?>