【问题标题】:If variable not empty display variable without repeating variable name如果变量不为空,则显示变量而不重复变量名
【发布时间】:2015-06-30 18:01:57
【问题描述】:

你好,你知道用 PHP 写这个而不重复变量名的方法吗?

if($abcdefg["blaBlaBlaBlaBlaBlaBlaBlaBlaBla"]!=="") {
    echo $abcdefg["blaBlaBlaBlaBlaBlaBlaBlaBlaBla"];
} else if($abcdefg["evenMoreBlaBlaBlaBlaBlaBlaBlaBlaBlaBla"]!=="") {
    echo $abcdefg["evenMoreBlaBlaBlaBlaBlaBlaBlaBlaBlaBla"];
} else if($abcdefg["stillAlotBlaBlaBlaBlaBlaBlaBlaBlaBla"]!=="") {
    echo $abcdefg["stillAlotBlaBlaBlaBlaBlaBlaBlaBlaBla"];
}

当然可以写

$a = $abcdefg["blaBlaBlaBlaBlaBlaBlaBlaBlaBla"];
$b = $abcdefg["evenMoreBlaBlaBlaBlaBlaBlaBlaBlaBlaBla"];
$c = $abcdefg["stillAlotBlaBlaBlaBlaBlaBlaBlaBlaBla"];

if($a) { echo $a; } else if($b) { echo $b; } else if ($c) { echo $c; }

这有点短,但我仍然想知道是否有一些语法上的好东西可以在没有变量重复的情况下编写它。

三元运算符并没有解决问题,因为我认为是“elseif”。

【问题讨论】:

  • 要么完整地拼出它,要么复制/引用另一个变量并使用它。没有“捷径”。或者只是不要使用非常长的变量/键名......
  • 它叽叽喳喳,就像鸟和鸡一样。
  • 是的,我只是想建议一个三元 ^
  • 我猜三元的问题是“elseif”?不过我喜欢 bitworking 和 rizier123 的答案,这两种解决方案都很好。

标签: php if-statement syntax


【解决方案1】:

这应该适合你:

只需遍历所有索引,如果它们通过 if 语句,您要检查并打印它们,例如

$indexes = ["blaBlaBlaBlaBlaBlaBlaBlaBlaBla", "evenMoreBlaBlaBlaBlaBlaBlaBlaBlaBlaBla", "stillAlotBlaBlaBlaBlaBlaBlaBlaBlaBla"];

foreach($indexes as $key) {
    if($abcdefg[$key] !== "") {
        echo $abcdefg[$key];
        break;
    }
}

【讨论】:

    【解决方案2】:

    你可以在if条件中做一个变量声明:

    if(($var = $abcdefg["blaBlaBlaBlaBlaBlaBlaBlaBlaBla"]) !== "") {
        echo $var;
    }
    

    【讨论】:

      【解决方案3】:

      为 ... hmmm ... 功能声明一个函数怎么样?

      function echoNotEmpty($s)
      {
          if ($s !== '') echo $s;
      }
      echoNotEmpty($abcdefg["blaBlaBlaBlaBlaBlaBlaBlaBlaBla"]);
      echoNotEmpty($abcdefg["evenMoreBlaBlaBlaBlaBlaBlaBlaBlaBlaBla"]);
      echoNotEmpty($abcdefg["stillAlotBlaBlaBlaBlaBlaBlaBlaBlaBla"]);
      

      甚至更短:

      echo $abcdefg["blaBlaBlaBlaBlaBlaBlaBlaBlaBla"];
      echo $abcdefg["evenMoreBlaBlaBlaBlaBlaBlaBlaBlaBlaBla"];
      echo $abcdefg["stillAlotBlaBlaBlaBlaBlaBlaBlaBlaBla"];
      

      我的意思是,如果你不想回显空字符串并且仍然回显它们,谁在乎呢?

      【讨论】:

      • 问题是“elseif”(可能有两个不为空的字符串,只有第一个应该回显)。
      猜你喜欢
      • 2013-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-18
      • 1970-01-01
      • 2020-04-21
      • 1970-01-01
      相关资源
      最近更新 更多