【问题标题】:Converting if/else to ternary operator将 if/else 转换为三元运算符
【发布时间】:2021-02-22 06:14:05
【问题描述】:

我刚刚开始掌握 PHP 中的三元运算符,但在转换以下内容时遇到了麻烦:

<? if( $link['file'] ): ?>
  <?=$link['file'] ?>
<? else: ?>
  <?=$link['link'] ?>
<? endif ?>

到目前为止,我的尝试会产生错误:

<? if( $link['file'] ) ? $link['file'] : $link['link']; ?>

任何指针如何让这个转换工作,它必须是关闭的?

谢谢

【问题讨论】:

  • &lt;? $link['file'] ? $link['file'] : $link['link']; ?&gt;

标签: php conditional-operator


【解决方案1】:

使用简写形式?:

<?= $link['file'] ?: $link['link'] ?>

完整格式:

<?= $link['file'] ? $link['file'] : $link['link'] ?>

【讨论】:

  • 如果是 php 7,你也可以做一个 = $link['file'] ?? $link['link'] ?>,这样更好,因为如果 $link['file'] 没有设置,你就不会收到通知。
猜你喜欢
  • 1970-01-01
  • 2021-03-17
  • 1970-01-01
  • 2021-07-09
  • 1970-01-01
  • 1970-01-01
  • 2012-07-11
  • 2018-10-25
  • 1970-01-01
相关资源
最近更新 更多