2012-03-09 5 views
0

可能性の重複:
PHP short circuit lazy evaluation, where is it in the php.net manual?
PHP “or” SyntaxPHP構文:||を使用したプログラムフロー制御オペレータ

私は次のようにプログラムフロー制御として||演算子を使用している人々を見てきました:

die("message");が実行されます
function() || die("message"); 

0の場合はfalseを返します。さらに、die();exit();に対してのみ動作するように見えます。そうしないと、インタープリタが「構文エラー」メッセージをスローします。

これは何と呼ばれているのでしょうか、その動作に関するドキュメントはどこにありますか?

+1

これはどの機能でも問題ありません。これは単純なブールORです。 –

+0

参考までに、初めてmysqlデータベース接続スクリプトに入っているのを見て、mysql_select_db($ database、$ connection)|| die(mysql_error()); ' – John

+0

これはかなり巧妙な"巧妙なトリック "です。私は保守性のためにそれを避けるだろう。 – rid

答えて

1

単なるブールOR式です。使用法ではショートカットと呼ばれる動作を利用しています。式の最初の部分がtrueと評価された場合、OR式がすでにtrueであるため、後半は評価されません。

0

これは論理ORです。 function()trueを返した場合、残りの式は評価されません。

+0

これはORではないANDです。 –

+0

@MichaelMior、ありがとう、修正されました。 – rid

+0

ああ、今私は短絡評価が制御式の外で働いていることは私には起こりませんでした。ありがとう。 – John

0

これはOR/||は左優先でオペレータであることに起因している(ここを参照してください:http://www.php.net/manual/en/language.operators.precedence.php)左が真であると評価されたとして、常にtrueになります式として右側を評価しても意味がありません。

関連する問題