2014-02-20 48 views
0

我想創建一個簡單的是/否或真/假布爾類型行來解析內容取決於答案。PHP的真/假內容解析

像這樣:

<?php 
dangerous = "yes"; 
?> 

<?php 
dangerous = "no"; 
?> 

塊到這裏類似isset,如果以上的答案是yes,它將分析,如果別的以外yes被寫入沒有出現。

<?php if dangerous = yes ?> 
Dangerous content here. 
<?php endif; ?> 

我是新來的PHP,所以我不確定在這裏用什麼路線。

+1

我希望這只是僞代碼,因爲是,它無效,PHP和意志除了'危險內容'以外,不要說任何其他內容,因爲你在執行任務('='),而不是相等性測試('==')。 –

回答

1

首先,這條線,這裏將總是評估爲true,因爲你使用的是單=這是一個assignment operator

if($dangerous = 'yes') // this will always be true 

您需要使用==用於比較運算符,或===用於嚴格比較,同時也考慮變量類型和值。 For more info on the difference between the comparison operators, see here.

你現在這樣做的方式是相當廣泛的使用,但不是最佳實踐。您的變量$dangerous將每一次設置,你需要檢查它的,以確定是否評估你的條件或不:

if($dangerous == 'yes') { 
    // do dangerous stuff 
} 

更好的做法,正如你所說的,是使用一個布爾變量,其將評估爲真或假(例如以上在此同樣的試驗將評估爲真在這兩種情況下):

$dangerous = true; // or false; 

if($dangerous) { 
    // do dangerous stuff 
} 

同樣地,如果它不是危險:

if(!$dangerous) { 
    // pretty safe, but this will evaluate to true for false, null, zero etc 
} 

在這個例子中,!$dangerous的值爲true時$dangerous是零,零等,所以如果你需要的假值進行嚴格比較,則需要在===比較操作:

if($dangerous === false) { 
    // false evaluates to true when comparing for a false value 
    // false evaluates to false when comparing for a null value 
} 

更好大多數情況下在結果的字符串表示中使用布爾變量。但要記住的一點是,如果你的布爾變量表示函數調用的返回值,它可能並不總是一致的。

0
<?php 
if($yes){ 
    ?> 
     <b>This is my HTML.</b> 
    <?php 
}else{ 
    ?> 
     <b>This is other HTML.</b> 
    <?php 
} 
?> 
1
if($dangerous == "yes"){ 
    //do something 
} else { 
    //do something else 
} 
0
<?php if ($dangerous === 'yes'): ?> 
yes 
<?php endif; ?> 
<?php if ($dangerous == 'no'): ?> 
no 
<?php endif; ?> 
0

PHP變量開始$

dangerous = "yes"; 

和if語句在括號中,並用了道路冒號去,你正在使用它:

而且,使用字符串'yes'並使用==

<?php if (dangerous == 'yes') : ?> 
Dangerous content here. 
<?php endif; ?> 
0

使用這樣的代碼:

$dangerous = true; // or false if no 

// check result 
if ($dangerous) { 
    // dangerous! 
} 
0

定義爲危險內容的條件和應用PHP expeptions:

if(dangerous){ 
try { 
    echo inverso(5) . "\n"; 
    echo inverso(0) . "\n"; 
} catch (Exception $e) { 
    echo 'Excepción capturada: ', $e->getMessage(), "\n"; 
} 

}