我并不认为这是有效的PHP(我确定我曾在几年前尝试过这种方式),但令我惊讶的是它确实运行了(虽然我只在PHP 5.5上测试过。 9):
<?php
$arr = [];
$arr[] = 'Hi.';
{
$arr[] = '> Hi there.';
$arr[] = '> What can I do for you?';
}
$arr[] = 'Nothing really.';
print_r($arr);
...输出
Array
(
[0] => Hi.
[1] => > Hi there.
[2] => > What can I do for you?
[3] => Nothing really.
)
PHP手册在introducing control structures时将{...}
称为组声明 - 但是,我无法在此上下文之外找到使用它们的任何提及。它确实说&#34;语句组本身也是一个声明&#34;,但这看起来有点含糊不清。
这真的有效吗?如果我使用这样的大括号,我可以期待我的代码在未来的版本中运行吗?如果一个语句组本身被认为是一个语句,我应该期望它在异常堆栈跟踪中有一个影响行号和帧吗?
答案 0 :(得分:3)
这真的有效吗?
是的,因为至少4.3
如果我使用这样的大括号,我可以期待我的代码在将来的版本中运行吗?
直到它从语言中删除,是的。突然发生的变化很少发生。
如果一个语句组本身被认为是一个语句,我应该期望它在异常堆栈跟踪中有一个影响行号和帧吗?
框架不包括if
,while
和for
等群组声明,所以我希望:不。为什么不尝试一下呢?