将变量设置为自身,比三元更短的速记

时间:2014-06-12 13:37:26

标签: php if-statement boolean logic

我正在尝试检查变量是否为空,如果是,则将另一个变量设置为一个字符串,如果不是,则将另一个变量设置为第一个变量。现在我正在使用三元运算符,但我想知道是否有更短的方法来执行此操作,因为它将其设置为逻辑中使用的变量。

这是我的代码:

$company_name = $project->company->name;
$this->project['company_name'] = !empty($company_name)
                                    ? $company_name
                                    : "Company";

4 个答案:

答案 0 :(得分:1)

如果您使用PHP 5.3+,则可以使用?:,但不能使用

$this->project['company_name'] = $company_name ?: "Company";

空变量应评估为false并指定“Company”。

答案 1 :(得分:0)

尝试为更多变量传递函数。你可以使用它来检查多个变量。否则我认为没办法检查你使用和设置其他值相同(你已经在使用缩短)

$check = mycheck($check, 'mysting');

function mycheck($check, 'mysting') {
  $return = (!empty($check) ? $check : "mysting");
  return $return;
}

答案 2 :(得分:-1)

$this->project['company_name'] = !empty($project->company->name) 
                                  ?  $project->company->name
                                  : "Company";

答案 3 :(得分:-2)

您可以在函数调用变量= company中使用。然后省略三元运算符。

   function xyz ($company="company") {
       if ($this->project['company_name']) {
          $company=$this->project['company_name'] ;
         }

功能甚至不需要返回,取决于使用情况。