是否可以将 PHP 中的代码片段括在括号内(不使用片段作为函数)?
以下代码的行为是否与没有大括号时的行为相同?或者根据括号内部或外部使用的代码类型可能会出现任何问题?
例如,这将是:
<?php
// First Code-Block
{# several lines of code
}
// Second Code-Block
{# another several lines of code
}
?>
始终以与此相同的方式行事:
<?php
// First Code-Block
# several lines of code
// Second Code-Block
# another several lines of code
?>
Update:正如“My1”的评论中所述,目标之一是构建大型代码部分。特别是因为大多数 IDE 都提供折叠括号之间的线的选项。
特别是考虑到“dragondreamer”的“Luke Mills”的答案,我稍微尝试了一下,到目前为止我没有遇到任何副作用。当然,这可能会随着未来新的 PHP 版本而改变,但“Luke Mills”的答案给出了需要关注的很好的指示。
是的,但它不会创建新的本地范围。这不是通常会做的事情。通常人们用注释来标记这样的块。
Update:
在手册中找到了它的参考资料,但这里是:
http://www.php.net/manual/en/control-structs.intro.php http://www.php.net/manual/en/control-structures.intro.php
任何 PHP 脚本都是由一系列语句构建的。语句可以是赋值、函数调用、循环、条件语句甚至不执行任何操作的语句(空语句)。语句通常以分号结尾。此外,可以通过用花括号封装一组语句来将语句分组为语句组。语句组本身也是一个语句。本章描述了各种语句类型。
这里的关键是通过用花括号封装一组语句,可以将语句分组为语句组.
我也找了找参考变量范围 http://php.net/manual/en/language.variables.scope.php因为它涉及到这种情况,但手册没有具体提到它,但是你可以这样想:
在 PHP 中,函数和类创建变量范围。你可以阅读相关内容here http://php.net/manual/en/language.variables.scope.php。但语句组(如上所述)则不然。不要将语句组的大括号视为包裹括号的函数(或类),而是将它们视为包裹控制结构的语句组的大括号(if
, for
, while
, switch
等)-因为这正是它们的本质。很明显,如果您使用的是if
语句(或任何其他控制结构),大括号不会引入新的范围,它们只是语句块的包装器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)