2014-10-06 44 views
0

即時通訊與坐在一個非常簡單的圖像上傳,其中第一個上傳的圖像將以特殊方式處理。然後對所有文件運行一個循環,並跳過第一個圖像。PHP:如果句子運行,但轉儲說不應該

爲此我命名了第一個圖像headImage,並且在它移動時跳過它,並完成其他的東西。

我已經削減了所有多餘的代碼,並且只顯示圈,引起了我的問題:

排序圖像陣列:

array (size=5) 
    'headImage' => 
     array (size=5) 
      'name' => string '8-skilling-1606-eller-07-54-1-h93a.jpg' (length=38) 
      'type' => string 'image/jpeg' (length=10) 
      'tmp_name' => string '/tmp/phpNUoAtX' (length=14) 
      'error' => int 0 
      'size' => int 37748 
    0 => 
     array (size=5) 
      'name' => string '807003718_2_Big.jpg' (length=19) 
      'type' => string 'image/jpeg' (length=10) 
      'tmp_name' => string '/tmp/php1TXBdm' (length=14) 
      'error' => int 0 
      'size' => int 36328 

的foreach循環,其跳過,如果的FileKey「headImage」,並轉儲的FileKey

foreach($uploadFiles as $fileKey => $file){ 
    if($fileKey == "headImage"){ 
     var_dump($fileKey); 
     continue; 
    } 
} 

而且從的var_dump輸出:

string 'headImage' (length=9) 
int 0 

現在,爲什麼if語句運行時$ fileKey的值顯然不是「headImage」?

回答

2

因爲"string" == 0在PHP中。

你必須使用類型來比較也嘗試===比較:

foreach($uploadFiles as $fileKey => $file){ 
    if($fileKey === "headImage"){ 
     var_dump($fileKey); 
     continue; 
    } 
} 
+0

Doh ....謝謝! – DalekSall 2014-10-06 10:14:41

3

最好的和安全的方式來比較兩個字符串使用PHP的strcmp功能

使用這樣的:

foreach($uploadFiles as $fileKey => $file){ 
    if(strcmp($fileKey ,"headImage") == 0){ 
     var_dump($fileKey); 
     continue; 
    } 
} 

PHP strcmp function Document

相關問題