我有这段代码。
它的作用是通过电子邮件显示供应商名称。问题是,如果供应商名称为空,因为某些人不需要它,我会收到一条错误,将我重定向到这段代码。
我是否可以说,如果供应商名称为空,则显示为无?还是空格?
<?php
$array1supplier = get_post_meta($productId, 'fancyincarray', true);
echo $array1supplier['supplier'];
?>
要检查数组是否有键,您可以像这样使用isset函数:
$array1supplier = get_post_meta($productId, 'fancyincarray', true);
echo (isset($array1supplier['supplier'])) ? $array1supplier['supplier'] : '';
使用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'];
}
?>
它们都是相同的,您可以选择任何想要的内容
似乎您期望从get_post_meta()
返回一个数组
get_post_meta(int $ post_id,字符串$ key ='',bool $ single = false)
检索帖子的帖子元字段。
返回:(混合),如果$ single为假,将是一个数组。将价值元数据字段,如果$ single为true。
因此最后一个参数应为false
。
使用isset()
确定是否设置了变量并且不为NULL
尝试一下:
$array1supplier = get_post_meta($productId, 'fancyincarray', false);
echo (isset($array1supplier['supplier'])) ? $array1supplier['supplier'] : "Empty";
<?php
$array1supplier = get_post_meta($productId, 'fancyincarray', true);
echo (!empty($array1supplier['supplier'])
? $array1supplier['supplier']
: '';
?>