单独使用分组语句是否有效


Is it valid to use grouped statements on their own?

我不认为这是有效的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

如果我使用这样的大括号,我是否可以期望我的代码在未来版本中运行?

直到它从语言中删除,是的。中断性更改很少发生。

如果语句组本身被视为语句,我是否应该期望它在异常堆栈跟踪中具有影响行号和帧?

框架不包括组语句,例如ifwhilefor,所以我期望:否。为什么不试试呢?