PHP 如果第一个变量为空则使用第二个
PHP if first var is empty use second one
我有一个小问题,是否可以检查一个变量是否有一个变量不为空并使用它们的值?像这样:
$var1 = "";
$var2 = "123";
$varifnotempy= $var1 || $var2;
echo $varifnotempy;
这里我不想要 2 因为他给我一个不空但我想要他 returns 我 123 如果 $var1
不为空则使用 $var1
的值
我知道我可以使用 if else 但我想知道是否可以通过变量来实现。谢谢
您可以像下面这样使用它:
$var1="";
$var2="123";
//one line condition code
$varifnotempy= $var1 ? $var1 : $var2;
//or
$varifnotempy= (!is_null($var1) && $var1!="") ? $var1 : $var2;
//or
$varifnotempy= (!isset($var1) || $var1!="") ? $var1 : $var2;
echo $varifnotempy;
传统方法是使用条件(又名 "ternary")运算符:
$varifnotempty = $var1 ? $var1 : $var2;
从 5.3 开始有 shorthand:
$varifnotempty = $var1 ?: $var2;
上面的答案很完美,但是如果你想要更清晰的函数调用,你可以像下面这样使用:
$var1 = "";
$var2 = "abc";
$varNotEmpty = (empty($var1) === true) ? $var2 : $var1;
echo $varNotEmpty;
又名
$var1 = "";
$var2 = "abc";
if (empty($var1)) {
$varNotEmpty = $var2;
}
else {
$varNotEmpty = $var1;
}
echo $varNotEmpty;
您可以这样使用 empty()
and the ternary operator:
<?php
$var1 = '';
$var2 = '123';
$varifnotempy = (!empty($var1)) ? $var1 : $var2; // => '123' because $var1 is an empty string
echo $varifnotempy;
如果 var 存在且具有非空值,empty()
将 return false。空值被认为是:
- ""(空字符串)
- 0(整数 0)
- 0.0(0 作为浮点数)
- "0"(0 作为字符串)
- 空
- 假
- array()(空数组)
三元运算符是这样工作的:$value = (if this is true) ? then set $value to this : otherwise set $value to this
。也就是说(condition) ? if true : if not true
我有一个小问题,是否可以检查一个变量是否有一个变量不为空并使用它们的值?像这样:
$var1 = "";
$var2 = "123";
$varifnotempy= $var1 || $var2;
echo $varifnotempy;
这里我不想要 2 因为他给我一个不空但我想要他 returns 我 123 如果 $var1
不为空则使用 $var1
我知道我可以使用 if else 但我想知道是否可以通过变量来实现。谢谢
您可以像下面这样使用它:
$var1="";
$var2="123";
//one line condition code
$varifnotempy= $var1 ? $var1 : $var2;
//or
$varifnotempy= (!is_null($var1) && $var1!="") ? $var1 : $var2;
//or
$varifnotempy= (!isset($var1) || $var1!="") ? $var1 : $var2;
echo $varifnotempy;
传统方法是使用条件(又名 "ternary")运算符:
$varifnotempty = $var1 ? $var1 : $var2;
从 5.3 开始有 shorthand:
$varifnotempty = $var1 ?: $var2;
上面的答案很完美,但是如果你想要更清晰的函数调用,你可以像下面这样使用:
$var1 = "";
$var2 = "abc";
$varNotEmpty = (empty($var1) === true) ? $var2 : $var1;
echo $varNotEmpty;
又名
$var1 = "";
$var2 = "abc";
if (empty($var1)) {
$varNotEmpty = $var2;
}
else {
$varNotEmpty = $var1;
}
echo $varNotEmpty;
您可以这样使用 empty()
and the ternary operator:
<?php
$var1 = '';
$var2 = '123';
$varifnotempy = (!empty($var1)) ? $var1 : $var2; // => '123' because $var1 is an empty string
echo $varifnotempy;
如果 var 存在且具有非空值,empty()
将 return false。空值被认为是:
- ""(空字符串)
- 0(整数 0)
- 0.0(0 作为浮点数)
- "0"(0 作为字符串)
- 空
- 假
- array()(空数组)
三元运算符是这样工作的:$value = (if this is true) ? then set $value to this : otherwise set $value to this
。也就是说(condition) ? if true : if not true