2017-01-04 166 views
0

我已經創建了一個函數,用於檢查圖像是否爲空或圖像變量沒有值或圖像未找到,然後返回默認圖像,但是在某些產品上它會給出結果但不是所有他們..如果語句沒有返回正確的結果

function image_check($image) 
{ 
    $no_image = "noimagefound.jpg"; 
    if(isset($image) || !empty($image) || $image != " ") 
    { 
     if(file_exists('uploads/store/products/'.$image)) 
     { 
      return 'uploads/store/products/'.$image; 
     } 
     else 
     { 
      return 'uploads/web_service/'.$no_image; 
     } 
    } 
    else 
    { 
     return 'uploads/web_service/'.$no_image; 
    } 
} 

任何人都可以使它正常工作嗎?我錯過了什麼?

+2

這沒有任何意義......如果它是空的或僅包含空白,則使用'$ image'值... – arkascha

+0

嘗試打印'$ image'以確保它包含您所期望的內容。 –

+1

看起來像你想''空($圖像)&& $圖像!=「」'爲條件 – bcmcfc

回答

1
function image_check($image) 
{ 
    $no_image = "noimagefound.jpg"; 
    if(!empty($image) && file_exists('uploads/store/products/'.$image)) 
    { 
     return 'uploads/store/products/'.$image; 
    } 
    return 'uploads/web_service/'.$no_image; 
} 

當他們在評論中指出的那樣,你的條件失敗,因爲你檢查,如果它是空的沒有,如果它是不是空的。 isset()和!empty()在這種情況下是冗餘的。

你也不需要所有其他檢查。小心使代碼複雜化超出您的需要。你只需要一張支票,如果失敗了,然後返回你的$no_image

+0

This works!非常感謝!我現在明白了!欣賞這個解釋 – Alexu

+0

循環漏洞: - https://eval.in/709494 –

+0

@Anant沒有真正的循環漏洞,因爲file_exists調用將失敗... – Devon

相關問題