2012-04-17 7 views
-2

は、通常、私は、次のステートメントを使用します。なぜ単純な|| ifシーケンスのように動作しますか?私は値を指定する必要がありました私の最後のプロジェクトで

<?php 
    $true = 1; 
    $false = 0; 
    $hasAccess = $true ? 1 : 0; 
    print $hasAccess; 
?> 

をこれはに動作します:

<?php 
    $true = 1; 
    $false = 0; 
    $hasAccess = $true || $false; 
    print $hasAccess; 
?> 

なぜ?

更新:私はOR/||私はそれから何を期待しなければなりません。しかし、私はいつでもこの可能性を見ていない。

+1

なぜ$ hasAccess = 1と書いたのですか? – alfa

+2

ブール値ではない '$ true'という変数を見ると、私は不安を感じます... –

+2

PHPマニュアルは役に立たないのですか? – hakre

答えて

1

$true ? 1 : 0; 

ので$trueがtrueで、

$true || $false; 

も同じ理由で、1と評価されているので、1に評価されます。

+2

最後のものは「真」と評価されませんか? – Svish

0

ORますあなたはbasiclyであると言っているので、何 式のいずれかの側が真であれば真を返します。

$ true = 1であるため、式全体が真です。

基本的にあなたが言っている "$真が真である、または$ falseの場合はtrueで、その後、その後$ hasAccessが真の"

0

アン|| ORステートメントは、ステートメントのうちの天気予報がtrueに評価されることを返します。 例:

$bool = true || false; 
// $bool = true 

$bool = false || true; 
// $bool = true 

$bool = false || false; 
// $bool = false 

$bool = false || true || false; 
// $bool = true 

$bool = false || 1; 
// $bool = true 

$bool = false || 'test'; 
// $bool = true 
関連する問題