我在PHP中使用三元分配时遇到了一个奇怪的(但希望简单的错过)问题。 $ category之下设置为空白,这意味着sizeof($ data)正在评估为0.我的期望是它应该被分配'测试类别'。
$data=array('Test Category');
$category= (sizeof($data)>0 ? trim($data[0]) : '');
如果我改为执行以下操作,我会获得$ category类别'测试类别',为什么三元运算符的工作原理如下?
if(sizeof($data)>0){
$category=trim($data[0]);
}
答案 0 :(得分:2)
如此检查$data[0]
:
if(isset($data[0]) && !empty($data[0])){
$category=trim($data[0]);
}
您可以将此更改为三元,如下所示:
$category = (isset($data[0]) && !empty($data[0])) ? $data[0] : '';
答案 1 :(得分:0)
你编写三元组时失败了,看看你的括号。
尝试:$category= (sizeof($data)>0) ? trim($data[0]) : '';
答案 2 :(得分:0)
如果你的数组有一个空值意味着你得到了相同的结果,这里是代码的两个例子:
$data=array();
$category= (sizeof($data)>0 ? trim($data[0]) : 'no');
echo $category; // output is no
另一个是:
$data=array('');
$category= (sizeof($data)>0 ? trim($data[0]) : 'no');
echo $category; //output is empty. it wont show the 'no'
在您的情况下,检查测试类别是否为空值或null您的代码:
$data=array('Test Category');
$category= (sizeof($data)>0 ? trim($data[0]) : 'no');
echo $category; //output is Test Category