Try/Catch block 中的 PHP 变量范围

标签 php exception-handling scope try-catch

在 PHP 中,变量范围规则如何应用于 Try/Catch block ?当 block 完成时,try block 中声明的变量是否超出范围?还是在函数/方法结束之前它们都在范围内?

例如:

try
{
   // This may throw an exception when created!
   $o = new Pronk();
}
catch (Exception $ex)
{
   // Handle & exit somehow; not important here
   return false;
}

$o->doPronk();

这有效吗?还是应该在 try/catch 之前设置 $o = NULL; 以将 $o 保持在范围内?

(我知道示例代码确实有效,但我也知道 PHP 在涉及范围界定时可能会变得有点愚蠢。我的问题是,理想情况下,应该 它有效吗?正确和正确的方法是什么?)

最佳答案

您的代码有效。 PHP 中的变量作用域是函数,而不是 block 。因此,您可以在 try block 内分配一个变量,并在外部访问它,只要它们在同一函数中即可。

关于Try/Catch block 中的 PHP 变量范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32488313/

相关文章:

phpMyAdmin - 如何将 mp3 文件保存在数据库中?

c++ - Windows 中 Paint 事件中的异常和访问冲突

python - python中的变量范围

c++ - 当我 `throw` 某事时,它存储在内存中的什么位置?

javascript - 无法在我的 Google Chrome 扩展程序中使用 localStorage 值

c++ - 函数参数的后期销毁

php - 编译错误: "g++: error trying to exec ' cc1plus': execvp: No such file or directory"

php - 如何在 PHP MySQL 中获取重复字段值的主键 id?

javascript - 如何定期从数据库发出 Ajax 请求

php - 在多语言(例如英语和法语)应用程序中抛出异常