Php 用于将变量设置为自身的比三进制短的速记

Php 用于将变量设置为自身的比三进制短的速记,php,if-statement,boolean,logic,Php,If Statement,Boolean,Logic,我试图检查一个变量是否为空,然后将另一个变量设置为一个字符串,如果不是,则将另一个变量设置为第一个变量。现在我正在使用一个三元运算符,但我想知道是否有一个更短的方法来实现这一点,因为它将它设置为逻辑中使用的变量 这是我的密码: $company_name = $project->company->name; $this->project['company_name'] = !empty($company_name)

我试图检查一个变量是否为空,然后将另一个变量设置为一个字符串,如果不是,则将另一个变量设置为第一个变量。现在我正在使用一个三元运算符,但我想知道是否有一个更短的方法来实现这一点,因为它将它设置为逻辑中使用的变量

这是我的密码:

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

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

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

函数甚至不需要返回,这取决于用法。

尝试为更多变量创建一个函数,并在其中传递值。您可以使用此选项检查多个变量。否则,我认为没有办法检查您是否使用和设置其他值相同(您已经在使用shorten)


如果你有PHP5.3+,你可以使用,但除此之外没有

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

空变量的计算结果应为false并指定“Company”。

此帖子将自动标记为低质量,因为它只是代码。你介意通过添加一些文本来扩展它来解释它是如何解决问题的吗?不,它不是一个精确的副本。如果你能提供一些解释,解释为什么这是一个更简洁的版本,而不是在提问中使用相同的功能,那就更容易理解@banditpanda了。答案应该解释他们在做什么,而不是什么与众不同的游戏。你能澄清一下吗?我没有投你反对票,我甚至没有足够的分数来否决投票。@Phpdna-你为什么认为这比公认的答案好?函数调用的开销,以及甚至不做任何事情的函数。这可能就是为什么会有一个函数调用?我想你不明白我的问题“现在我正在使用一个三元运算符,但我想知道是否有一个更简短的方法来实现这一点”这个答案是最符合我期望的答案。作为对bartek的回应,我想知道我是否不必每次都写三元运算,因为每次都是类似的逻辑。只针对单个变量还是多个变量?对于多变量,您可以将函数与ternaly一起使用。我可能会对一些变量执行此操作。我不确定您为什么要将其进一步缩短。我更喜欢在编写代码时考虑清楚易读性。我同意eagle12,但如果有更好的方法,我想知道这就是为什么我要问的。谢谢你的意见,100%我在寻找什么
$check = mycheck($check, 'mysting');

function mycheck($check, 'mysting') {
  $return = (!empty($check) ? $check : "mysting");
  return $return;
}
$this->project['company_name'] = $company_name ?: "Company";