2013-10-02 26 views
1

對於模糊描述的標題,我很抱歉。這就是我想要的:PHP:if語句,需要觸發的條件值

if($a[$f] === false || $a[$g] === false || $a[$h] === false || $a[$i] === false || $a[$j] === false) 
{ 
    // do something 
} 

我想要做的與實際觸發了聲明(如果[$ F] =真和[$ G] =假,我想做一些與病情的東西$ G)。

我知道在這種情況下,觸發了第一個變爲真的語句(即$ a [$ g] == false)。但有沒有辦法用$ g做點什麼?我以前從來沒有在編程生涯中看到過這一點,似乎也找不到任何關於它的事情。

在此先感謝。

---編輯---

我忘了提:我使用的是所有陣列數據的功能。因此,縮短,我得到這個:

if(valid($a[$f]) === false || valid($a[$g]) === false) 
{ 
    // do something 
} 

---編輯2 ---

這塊基於面向對象的PHP,在那裏我在一類是的,是我的代碼。

if($this->validatedText($product[$iName]) == false || 
      $this->validatedUrl($product[$iUrl]) == false || 
      $this->validatedNumber($product[$iTax]) == false || 
      $this->validatedValuta($product[$iPrice]) == false || 
      $this->validatedText($product[$iArticleNumber]) == false || 
      $this->validatedText($product[$iDescription]) == false || 
      $this->validatedText($product[$iMetaDescription]) == false || 
      $this->validatedText($product[$iTitle]) == false) 
     { 
      // do something with the first iVariable 
     } 
+2

做一個開關的情況下!這種方式你知道女巫一觸發! – tinybyte

+1

您是否針對所有陣列鍵進行測試?或者僅僅是其中的一部分? – George

+0

你需要'||'的短路行爲嗎? – kennytm

回答

1

最簡單的解決方案將是

if(false!==($sIndex = array_search(false, $a, 1))) 
{ 
    //your $sIndex is first index with false value 
} 

,如果你想所有的鍵,你可以使用array_filter(),像這樣:

$rgFalse = array_keys(array_filter($a, function($x) 
{ 
    //here valid is your function 
    return false===valid($x); 
})); 
+0

這實際上是一些漂亮的代碼。我要試試這個。 –

+0

哎呀,忘了提一些東西。現在編輯我的問題... –

+0

@StefanSchouten然後添加您的'有效的'調用來檢查(我已更新) –