を直接実行することはできません。throw
は式ではなく文であるためです。 or
は実際に演算子なので、そのオペランドは式(ある値に評価されるもの)であると考えます。あなたが代わりにこれを実行する必要があると思います
:あなたはwebbiedaveコメントを指摘するように、そのPHPマニュアルコメントによって提案されたthrowException()
機能を使用しようとしている場合
$re = mysql_query($query);
if (!$re) {
throw new Exception('Query Failed');
}
は、あなたが呼び出す必要がありますと言っていますその関数の代わりに、このような直接throw
文:
$re = mysql_query($query) or throwException('Query Failed');
あなたはクラスメソッドから例外をスローする必要があると述べているPHPにはルールがありません。その例外をキャッチする方法がある限り、あなたは大丈夫です。 Exception
クラスを使用せずに例外をスローすることを意味する場合は、そうする必要があります。例外は本質的にオブジェクトです。オブジェクトではない(またはException
クラスから継承しない)例外をスローすることはできません。
例外をスローするのではなく、PHP(通知、警告、および致命的なエラー)からよく見られるエラーの種類を増やしたい場合は、trigger_error()
を使用します。
$re = mysql_query($query);
if (!$re) {
trigger_error('Query Failed', E_USER_ERROR);
}
「静的」とはどういう意味ですか? – BoltClock
静的にはクラスを初期化せずに意味する – sreejith
この無駄な「クエリ失敗」ステートメントは単なる例であり、実際にはクエリと一緒に実際にエラーが発生することを願っています –