20

いくつかのコードをデバッグしようとしています。tryで定義された変数を表示できるようにしたいcatch。たとえば、変数$siteId.

<?php
try {
    $siteId = 3;
    if(1 !== 2) {
        throw new Exception('1 does not equal 2!');
    }
} catch(Exception $e) {
    $moreInfo = '';
    if(isset($siteId)) {
        $moreInfo .= ' SiteId»' . $siteId;
    }
    echo 'Error' . $moreInfo . ':' . $e->getMessage();
}
?>

私が得る応答はError: 1 does not equal 2!代わりにですError SiteId»3: 1 does not equal 2!。私は何を間違っていますか?

4

6 に答える 6

6

PHP の変数は、ファイル、メソッド、または関数にスコープが設定されているため ( http://php.net/manual/en/language.variables.scope.phpを参照)、これがどのように機能しないのかわかりません。 . PhpStorm にすばやくカットアンドペーストすると、正しい応答が出力されます。

于 2013-07-26T08:17:47.340 に答える
0
<?php
$siteId = 3;
try {

    if(1 !== 2) {
        throw new Exception('1 does not equal 2!');
    }
} catch(Exception $e) {
    $moreInfo = '';
    if(!empty($siteId)) {
        $moreInfo .= ' SiteId»' . $siteId;
    }
    echo 'Error' . $moreInfo . ':' . $e->getMessage();
}
?>
于 2019-12-30T00:28:08.963 に答える