在 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/