空格空间在PHP语法中通常被忽略,但有几个地方不能在不影响意义(和结果)的情况下放置它们。PHP:空白空间
一个例子是:
$a = 5.5; // five and a half (float)
$b = 5 . 5; // "55" (string)
你知道的任何其他的例子吗?
的问题是不是关于为什么是这种方式工作,但什么是情况下,当省略或放置空白改变了计划,但两个版本的语法正确。
空格空间在PHP语法中通常被忽略,但有几个地方不能在不影响意义(和结果)的情况下放置它们。PHP:空白空间
一个例子是:
$a = 5.5; // five and a half (float)
$b = 5 . 5; // "55" (string)
你知道的任何其他的例子吗?
的问题是不是关于为什么是这种方式工作,但什么是情况下,当省略或放置空白改变了计划,但两个版本的语法正确。
在你的例子中,你打破了两个单一的词法标记(有点像打破function
到func tion
,空白确实没有被这样忽略)。这并不是很有意思,当事情突破时你可以想出很多例子,唯一有趣的任务是尝试找到一个例子,其中工作(即不是语法错误),但不同,例如:
$a = $x++ + $y; // x is incremented
$b = $x+ + + $y; // x is not incremented
那个人让我狂暴。我提出末日的空白:
function foo() {
print "I'm foo.";
}
if (something()) {
foo();
}
执行时,将错误是:
Fatal error: Call to undefined function foo() on line 6
一个小时左右后,我发现,该错误消息实际上说:
Fatal error: Call to undefined function foo() on line 6
注意双空格:
function foo()
原来,由拷贝/粘贴上面的代码(与highlight_string
格式化的),一个非间断空间
,或0xA0
是在标识符可接受,所以该函数调用是0xA0foo()
代替foo()
。
您不能在空格的数字中间!天哪!
$x = 10 3.5; //syntax error
如果你把一个空间在运营商的中间,它不再是运营商!
if (true & & true) echo 'true'; //syntax error
如果我把一个空间在我的字符串的中间,这是不一样的串!
echo "Hel lo World"; //does NOT print "Hello World"!
很抱歉,但这个问题很可笑,因为你当然不能在令牌的中间扔空间既没有改变行为或断码。几乎与其他所有编程和书面语言一样。
5.5
是一个数字,5 . 5
是一个字符串,因为.
是字符串连接运算符。这只是语言的语法。
这是一个很好的;-) – 2011-02-03 10:32:31
是的,以及所有其他PHP和其他语言的书面和口头怪癖。对不起,这个问题是什么? – PurplePilot 2011-02-03 10:34:30
第二种情况的一个很好的变体是`$ b = 5 ... 5;` - 尽管它构成了更多的情况下空间将有助于可读性。 – mario 2011-02-03 10:39:35