级联2变量PHP

时间:2018-12-03 15:17:26

标签: php string concatenation

这不是我第一次遇到此问题。我在PHP中有2个类型为string的变量。当它们都不为空时,我想要这样的东西:

 echo $var1 . ', ' . $var2;

我的问题是,有时$var1$var2可能为空,因此昏迷是漂浮的。我尝试这个:

 echo $var1 && $var2 ? $var1 . ', ' . $var2 : $var1 || $var2;

但是,当我们处于适当状态时,它将发送1。我希望唯一的方法不是先测试$var1 && $var2,然后再测试$var1,然后再测试$var2

预先感谢

4 个答案:

答案 0 :(得分:10)

echo join(', ', array_filter([$var1, $var2]));

array_filter删除所有空值,并且join将连接符放在其余项目之间,如果有多个,则

答案 1 :(得分:1)

您可以通过多种方式来做到这一点,例如,检查空白使用三元等等,但是我有一种方法可以使用array_filter()来解决此问题删除空值并使用, 内爆。然后,当任何变量为空字符串时它都不会浮动,并且会消耗多个变量。希望这会有所帮助:)

<?php
 $implode = ',&nbsp;';
 $var1 = 'xyz';
 $var2 = '';
 $result = [$var1,$var2];
 $filtered_result = array_filter($result);
 echo implode($implode,$filtered_result);
?>

演示: https://3v4l.org/PZ8Rv

答案 2 :(得分:0)

尝试

if(!(empty($var1) && empty($var2))){
echo $var1 . ',&nbsp;'.$var2;
}else{
$value = !empty($var1)? $var1 : (!empty($var2)? $var2 : "both are empty");
echo $value
}

答案 3 :(得分:0)

您的正确条件使用||运算符,该运算符返回布尔值。如果右语句或左语句为true,则将返回true(1),否则将返回false(0)

然后您必须执行类似的操作

 echo ($var1 && $var2 ? $var1 . ',&nbsp;' . $var2 : ($var1 ? $var1 : $var2));

请注意,必须定义$ var1(null或为空,但必须定义)