我不认为这是有效的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 手册在引入控制结构时将{...}
称为组语句 - 但是,我找不到在此上下文之外使用它们的任何提及。它确实说"语句组本身也是一个语句",但这似乎有点模棱两可。
这真的有效吗?如果我使用这样的大括号,我是否可以期望我的代码在未来版本中运行?如果语句组本身被视为语句,我是否应该期望它在异常堆栈跟踪中具有影响行号和帧?
这真的有效吗?
是的,因为至少 4.3
如果我使用这样的大括号,我是否可以期望我的代码在未来版本中运行?
直到它从语言中删除,是的。中断性更改很少发生。
如果语句组本身被视为语句,我是否应该期望它在异常堆栈跟踪中具有影响行号和帧?
框架不包括组语句,例如if
,while
和for
,所以我期望:否。为什么不试试呢?