2012-04-17 25 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 2012-04-17 09:18:30

+2

看到名爲'$ true'的變量不是布爾值會讓我感到不安...... – 2012-04-17 09:19:48

+2

PHP手冊是無用的嗎? – hakre 2012-04-17 09:25:34

回答

1

因爲

$true ? 1 : 0; 

評估爲1,因爲$true是真實的,

$true || $false; 

也計算爲1,出於同樣的原因。

+2

最後一個沒有評價爲「真」嗎? – Svish 2012-04-17 09:19:41

0

的或將要如果表達式的任一側爲真,則返回true。

由於$ true = 1,所以表達式作爲一個整體是真實的。

基本上你說:「如果$真實不虛,或$假爲真,那麼則$ 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 
相關問題