In PHP, how do variable scope rules apply to Try/Catch blocks? Do variables declared within the try
block go out of scope when the block has finished? Or are they i
the main concept for the exception handling is that if anything goes wrong inside the "try" block the code will enter into the "catch" block. so if
$o = new Pronk();
does not raise any error it will be in scope. we don't have to declare it before try/catch block. your code is perfectly valid.
Your code is valid. Variable scope in PHP is by function, not block. So you can assign a variable inside the try
block, and access it outside, so long as they're in the same function.
I believe this is opinion based mostly. The code is correct and it will work as expected as long as the catch
block always has the return
statement. if the catch
block does not return, the flow will continue and the code outside the try/catch block will be executed, and it will fail, because $o
won't be initialized. You will be able to access $o
because of the lack of block scope in php, but the method won't exist because the object construction failed.