PHP如果第一个var为空则使用第二个

时间:2018-02-07 20:18:01

标签: php if-statement var

我有一个小问题,如果可以检查一个变量,如果var中的一个不是空的并且使用它们的值?像这样:

$var1 = "";
$var2 = "123";
$varifnotempy= $var1 || $var2;

echo $varifnotempy;

在这里,我不想 2 ,因为他告诉我一个人不是空的但我希望他返回我 123 如果$var1不是空的使用$var1

的值

我知道我可以使用if else但我想知道是否有可能通过变量来实现。 THX。

4 个答案:

答案 0 :(得分:8)

传统方式是条件(又名"三元")运算符:

$varifnotempty = $var1 ? $var1 : $var2;

自5.3以来,这是一个简写:

$varifnotempty = $var1 ?: $var2;

答案 1 :(得分:1)

您可以使用empty()ternary operator,如下所示:

var localFixture = fixture
    .Customize(new AutoMoqCustomization())
    .Customize<whatever>(x => x.OmitAutoProperties()));
如果var存在并且具有非空值,则

<?php $var1 = ''; $var2 = '123'; $varifnotempy = (!empty($var1)) ? $var1 : $var2; // => '123' because $var1 is an empty string echo $varifnotempy; 将返回false。空值被认为是:

  • “”(空字符串)
  • 0(0为整数)
  • 0.0(0作为浮动)
  • “0”(0作为字符串)
  • NULL
  • FALSE
  • array()(空数组)

三元运算符的工作方式如下:empty()。换句话说$value = (if this is true) ? then set $value to this : otherwise set $value to this

答案 2 :(得分:0)

您可以像下面这样使用它:

$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;

答案 3 :(得分:0)

上面的答案是完美的,但如果你想要更清晰的函数调用,你可以像下面这样使用它:

$var1 = "";
$var2 = "abc";

$varNotEmpty = (empty($var1) === true) ? $var2 : $var1;
echo $varNotEmpty;

AKA。

$var1 = "";
$var2 = "abc";

if (empty($var1)) {
  $varNotEmpty = $var2;
} 
else {
  $varNotEmpty = $var1;
}

echo $varNotEmpty;