2011-07-13 39 views
2

我試圖檢查按鍵值的:陣列PHP循環值和關鍵

$errorArray=array(); 
$naamarray["naam"]=false; 
$naamarray["voornaam"]=false; 
$naamarray["adres"]=false; 
$naamarray["woonplaats"]=false; 
$naamarray["postcode"]=false; 
$naamarray["telefoonnummer"]=false; 
$naamarray["geboortedatum"]=false; 
$naamarray["adres"]=false; 
$naamarray["wachtwoord"]=false; 
$naamarray["email"]=false; 
$naamarray["email"]=true; 

    foreach($naamarray as $key => $value){ 
     if($value == false){ 
      array_push($errorArray,$key); 
      echo $key; 
      echo $value; 
     } 
} 

但值永遠不會顯示的,什麼是我的錯?

+0

嘗試回顯**之前的鍵和值** if語句以查看所得結果 – Neal

回答

4

false是php中的布爾類型。既然你已經分配了您的數組值,你需要使用var_dump看到實際的價值你的鑰匙:

var_dump($key); 

See the var_dump manual for more info


您可能要字符串值分配給您的數組值代替。

+0

爲什麼選擇字符串?從我所知道的情況來看,使用字符串不會使任何事情受益,因爲您不會僅僅向用戶顯示「假」或「真」以進行表單驗證。使用布爾值是合適的,因爲在比較($布爾型)或(!$布爾型)中佔用較少空間並正確評估爲真或假。使用字符串意味着你也必須擔心區分大小寫,然後我們開始下降True,False,FileNotFound枚舉斜率。 http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx – Zimzat

+0

@Zimzat:我不確定OP的要求。如果他的要求就像你說的那樣,那麼使用布爾值就是要走的路。如果他只是想檢查按鍵內容,他可以簡單地使用字符串值。否則,需要'var_dump'來查看'false'和'true'值。 – Sarfraz

+0

你可以很容易地看到一個'true'值,因爲它會轉換爲'1'的字符串。錯誤的價值是唯一困難的部分。或者,'var_export'也可以用來查看其原生形式的布爾值。對於OP,我會在完成後簡單地推薦'var_dump'整個errorArray,而不是在執行期間。 – Zimzat

1

請注意:echo false不會迴應任何內容。

0

試試這個:

$errorArray=array(); 
$naamarray["naam"]='false'; 
$naamarray["voornaam"]='false'; 
$naamarray["adres"]='false'; 
$naamarray["woonplaats"]='false'; 
$naamarray["postcode"]='false'; 
$naamarray["telefoonnummer"]='false'; 
$naamarray["geboortedatum"]='false'; 
$naamarray["adres"]='false'; 
$naamarray["wachtwoord"]='false'; 
$naamarray["email"]='false'; 
$naamarray["email"]='true'; 

    foreach($naamarray as $key => $value){ 
     if($value == 'false'){ 
      array_push($errorArray,$key); 
      echo $key; 
      echo $value; 
     } 
} 
+0

爲什麼downvote?當然我不會推薦任何人使用字符串作爲bools,但var_dump並不完全是UI友好的,也許他想以一種很好的格式顯示它,並且這將允許他這樣做。 – AlienWebguy

+0

而不是將內部值更改爲字符串(將自己綁定到特定值,在其他地方進行更改或檢查會更困難),則在輸出時更改該值會更容易,如下所示:echo($價值)? '真假'; – Zimzat

+0

或者:var_export($ value);仍然只適用於調試或系統檢查頁面。對於表單驗證輸出不是用戶友好的。 – Zimzat

1

,因爲他們總是假的,沒什麼意思

echo false; 

給你

0

不能在PHP回聲布爾變量。如果你只是想調試 - 使用

var_dump($value); 

改爲。

+1

當然可以。回聲一個布爾值只是簡單地將它轉換爲字符串。一個真正的值轉換爲字符串'1',一個錯誤的值轉換爲字符串''(空白)。 – Zimzat

+0

謝謝你指出這一點!我從未意識到這一點;) – madflow

0

有趣的是,鍵盤在我的家庭服務器上回顯。但話又說回來; echo'ing bool false將不會輸出任何內容。