2015-06-01 35 views
1

基本上我試圖檢查是否存在任何變量,如果是的話,然後運行該片段,無論其他人是否存在或不。php如果和,或者:要檢查多個變量。工作,但變得沒有定義的錯誤

我使用:

if ($a1 || $a2 || $a3 || $a4): 
$a = "success"; 
endif; 

如果只有$a4存在,這個工程並設置是在$a變細。但是,在$a4之前,我收到了變量未定義的錯誤。

if (!empty($a0) && $a1 || $a2 || $a3 || $a4) : 
$a-alt = "no0success"; 
endif; 

此代碼工作正常:如果$a0變量不存在(NULL)

不同的變量被設置。但是,它給了我變量未定義的錯誤。

+1

你不能在php變量中使用。將其更改爲'$ a_alt'並且@AkshayHegde在他的回答中說,嘗試並使用'isset()' – Epodax

+0

啊,我編輯名稱使其更容易,然後再將其發佈到此處。 我想沒有足夠的努力換擋。謝謝 – John

回答

0

。利用isset功能,嘗試這樣的事情

if(isset($variable)){ 
    // do so and so.... 
}else 
{ 
    // define variable 
    $variable = 'foo'; 
} 
+1

謝謝! 這工作完美。我做到了這一點。沒有錯誤或任何東西。 我會記住這一個:) 按預期工作,所以張貼它。如果(isset($ a1)|| isset($ a2)|| isset($ a3)|| isset($ a4)): $ a =「success」; endif;' ................................. 'if(!empty($ a0)&& isset ($ a1)|| isset($ a2)|| isset($ a3)|| isset($ a4)): $ a_alt =「no0success」; endif;' – John

+0

很高興知道它的工作,不斷學習,一切順利。 –

1

如果每個變量設置你可以檢查。 PHP的短路邏輯將確保你不會得到任何錯誤:

if ((isset($a1) && $a1) || 
    (isset($a2) && $a2) || 
    (isset($a3) && $a3) || 
    (isset($a4) && $a4)) 
    $a = "success"; 
endif; 

注意,因爲&&的優先級高於||附加括號是多餘的,但恕我直言,他們增加了片段的可讀性。