2011-02-10 39 views
19

网络上有大量的两个例子。 php手册说“include()语句[...]”,这似乎是矛盾的 - 如果它是一个声明不应该没有括号?是php的'include'函数还是语句?

这两项工作:

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

这样,我或其他人照顾?

+3

不,一个人永远要关心没有一定道理的。 – 2011-02-10 10:17:29

回答

28

从手动(我的重点)报价

因为包括()是一个特殊的语言构造,圆括号是而不是需要围绕它的论点。

这些也被称为“特殊形式”,包括诸如echoreturn陈述之类的东西。请注意,虽然这些都不是功能,但仍然可以谈论表达式和语句,不同之处在于前者具有价值,而后者则不具备价值。由于includeinclude_oncerequirerequire_once都返回一个值(如果包含成功,则返回TRUE),则可以在表达式中使用它们。通过这个推理,“包含声明”将是不正确的,尽管include几乎总是用作语句。

+1

+1为“语言结构” – igorw 2011-02-10 10:16:45

1

parens中的单值会根据值本身进行评估,所以parens本身并不重要。只有一个参数

-1

语句,可以有也插入语如:

echo ('hello world'); 
9

包括一个声明: 按照例如

// 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'; 
} 
+0

+1为负的例子 – PeerBr 2014-10-10 20:08:37

1

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

语句和函数之间的区别是个别语言的语义问题。因此,PHP维护者可以明确定义它,或者让它保持不明确。

1

includerequireechoprint和其它关键字一小撮都是靠自己的语言结构,而不是函数调用,并且不需要括号。但是,有些人喜欢假装他们是函数调用,无论如何都使用括号。它们是相同的。

-1

我相信唯一的区别就是你想要做的。

例如,这两个

echo 'Hello World'; 
echo ('Hello World'); 

...两个打印的Hello World

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

5

的括号里的一个函数的参数。 与include你可以使用它作为一个函数或在php语句。

因为include()是一种特殊的语言结构,所以括号不是围绕其参数所需的 。

文档浏览:http://php.net/manual/en/function.include.php

随着echo相同的概念,从PHP手册here

回声实际上不是一个函数引用(这是一个语言结构),所以你 不要求使用圆括号。回声(与其他一些 语言结构不同)不会像函数那样工作,因此它总是不能在函数的上下文中使用。

0

回声总是用回声 “测试”

<?php 
// this will give you error 
echo ("test","test"); 

//that will work fine 
echo "test","test"; 
?> 
相关问题