ホームページ > バックエンド開発 > PHPチュートリアル > PHP では、trycatch ブロック内で定義された変数をブロック外で使用できるのはなぜですか?ソリューションのアイデア

PHP では、trycatch ブロック内で定義された変数をブロック外で使用できるのはなぜですか?ソリューションのアイデア

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 12:18:22
オリジナル
1001 人が閲覧しました

PHP では、trycatch ブロック内で定義された変数をブロック外で使用できるのはなぜですか?

function f() <br />{<br />    try {<br />        $a = new obj;<br />    } catch (Exception $e) {<br />        echo $e->getMessage();<br />    }<br />    $a->func();<br />}<br />
ログイン後にコピー

上記のように、$a 変数は引き続き func() を呼び出すことができます。つまり、$a は new によって生成されたオブジェクトであるということです。 . $a が func 関数を呼び出した場合、$a オブジェクトのメモリは再利用されません。
この現象の理由について、PHP の専門家からアドバイスをいただけますか。
------解決策----------------------
try ブロックでは、定義内容に例外がある場合、指定された操作を実行する必要があります。それ自体は関数ではありません。
例外がスローされた場合、try ステートメントのスクリプトは実行を停止し、すぐに catch ステートメントのスクリプトの実行に切り替わります。

したがって、上記のコードは、例外処理に関係なく、
<br />function f() <br />{<br />    $a = new obj;<br />    $a->func();<br />}<br />
ログイン後にコピー

と同等です------解決策のアイデア---------- ------------
try catch 構造は、例外を処理するための単なるプログラム ブロックです
形式的に言えば、if else、while、for、およびforeach 構造体

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート