Hello! 欢迎来到小浪资源网!


PHP try块中定义的变量,为何在块外也能访问?


PHP try块中定义的变量,为何在块外也能访问?

php try 后不定义变量为何不报错?

php 中,以下代码不会报变量未定义错误:

try {     $result = '正确'; } catch (exception $e) {     echo $e->getmessage(); } echo $result;

原因在于 php 具有特殊的变量作用域规则。即使变量在 try 块中定义,它也会在块外部可用。

例如,在上面的代码中,$result 在 try 块内定义,但仍可在块外部访问。这与 Java 和 c 不同,在这些语言中,块内定义的变量仅限于块内访问。

立即学习PHP免费学习笔记(深入)”;

php 官方文档对此行为的说明如下:

注意:与 Java 和 c++ 不同,在循环或 if 语句等块内声明的变量将在块外被识别和访问,因此:

相关阅读