2016-06-09 74 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";