2016-06-09 32 views
0

我有這段代碼。Array和If Statment

它所做的是通過電子郵件顯示供應商名稱。 問題是,如果供應商名稱是空的,因爲有些不需要它,我得到一個錯誤,將我重定向到這段代碼。

有沒有辦法讓我說如果suppliername是空的,顯示爲none?或作爲空白空間?

<?php 
    $array1supplier = get_post_meta($productId, 'fancyincarray', true); 
    echo $array1supplier['supplier']; 
?> 
+1

那麼你想知道,如果該值爲空。所以谷歌:'PHP檢查空',你已經得到你的解決方案。 – Rizier123

+0

當然,請使用[if()](http://php.net/if) –

回答

0

要檢查,如果數組有一個鍵就可以使用isset功能,像這樣:

$array1supplier = get_post_meta($productId, 'fancyincarray', true); 
echo (isset($array1supplier['supplier'])) ? $array1supplier['supplier'] : ''; 
+0

謝謝,這工作像一個魅力。非常感謝!!! – Stefano

-1
<?php 
      $array1supplier = get_post_meta($productId, 'fancyincarray', true); 
      echo (!empty($array1supplier['supplier']) 
       ? $array1supplier['supplier'] 
       : ''; 
?> 
+1

請向您的代碼添加說明。描述如何以及爲什麼解決這個問題。 –

+0

非常感謝您的回覆,不幸的是我沒有爲我工作。雖然我可以看到邏輯。 – Stefano

0

使用empty()功能檢查空。

代碼:

<?php 
    $array1supplier = get_post_meta($productId, 'fancyincarray', true); 
    if(empty($array1supplier['supplier'])) { 
    echo "Supplier is empty!"; 
    } else { 
    echo $array1supplier['supplier']; 
    } 
?> 



您還可以使用isset()功能檢查,如果它被設置與否。

代碼:

<?php 
$array1supplier = get_post_meta($productId, 'fancyincarray', true); 
if(isset($array1supplier['supplier'])) { 
echo $array1supplier['supplier']; 
} else { 
echo "Supplier is empty!"; 
} 
?> 



你可以使用if($array1supplier['supplier'] == "")

代碼:

<?php 
$array1supplier = get_post_meta($productId, 'fancyincarray', true); 
if($array1supplier['supplier'] == "") { 
echo "Supplier is empty!"; 
} else { 
echo $array1supplier['supplier']; 
} 
?> 


他們都是一樣的,你可以選擇任何你想要的

0

好像你期望從get_post_meta()

返回數組根據WP Code Reference

get_post_meta(INT $ POST_ID,串$關鍵= '',布爾$單= FALSE)

檢索帖子的帖子元字段。

返回:(混合)如果$ single爲false,那麼它將是一個數組。如果$ single爲真,將會獲得元數據字段的值 。

所以最後一個參數應該是false

使用isset(),以確定是否一個變量設置,而不是空

試試這個:

$array1supplier = get_post_meta($productId, 'fancyincarray', false); 
echo (isset($array1supplier['supplier'])) ? $array1supplier['supplier'] : "Empty";