0 レビュー
0 回答
mysql-PDO例外が発生すると、PHPはクラス変数の設定を解除します
私が書いたいくつかのスクリプトでこれが起こっていることを知りました。私にはとても奇妙に感じます。 PDO例外が発生すると、例外ハンドラーでクラス変数にアクセスできなくなります。
使用しているもの: PHP 5.5.9-1ubuntu4.14(cli)(ビルド:2015年10月28日01:34:46) Copyright(c)1997-2014 The PHP Group Zend Engine v2.5.0、Copyright(c)1998-2014 Zend Technologies Zend OPcache v7.0.3、Copyright(c)1999-2014、by Zend Technologies
class myClass extends PDO {
var $myVar
public function __construct ($text) {
$this->myVar = $text."_Hello";
echo $this->myVar;
try {
//try to connect to db here
} catch (PDOException $e) {
echo $e->getMessage();
echo $this->myVar;
die;
}
}
}
したがって、最初のエコー$ myVarが機能していても、接続が失敗すると(この場合、エラーは接続が多すぎます)、catchブロックにあるものは'PHP通知:未定義変数:'
ただし、これに変更すると、正常に機能します:
class myClass extends PDO {
var $myVar
public function __construct ($text) {
$anotherVar = $text."_Hello";
echo $anotherVar;
try {
//try to connect to db here
} catch (PDOException $e) {
echo $e->getMessage();
echo $anotherVar;
die;
}
}
}
他の関数で使用するには、明らかにグローバル変数が必要です。なぜこれが起こっているのか分かりますか?
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。