php使用try的时候,前面不定义变量怎么不报错呢?

作者站长头像
站长
· 阅读数 17
<?php
       try{
            $result = '正确';
        }catch (\Exception $e) {
            echo $e->getMessage();
        }
echo $result
?>

为何这样写,不报错,$result好像没在try的作用域里面定义啊?感觉应该这样写才对。

<?php
        $result = '';
       try{
            $result = '正确';
        }catch (\Exception $e) {
            echo $e->getMessage();
        }
echo $result
?>
回复
1个回答
avatar
test
2024-07-20

PHP就是这么灵活。

看官网文档下的第一个评论:PHP变量范围

Note that unlike Java and C++, variables declared inside blocks such as loops or if's, will also be recognized and accessible outside of the block, so:
<?php
for($j=0; $j<3; $j++)
{
     if($j == 1)
        $a = 4;
}
echo $a;
?>

Would print 4.
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容