「<?php isset($a) ? echo $a : echo ''; ?>」でエラーになります

2020年5月26日
ユーザー

ifコロン構文時の <?php echo ?> と <?= ?> の違いについて質問です。

通常の状態で<?php echo $a; ?><?= $a; ?> と記載した場合は問題なく動くのに、

ifコロン構文時には <?php echo $a; ?>と記載したコードがエラーになるのですが、どこが不具合の原因なのでしょうか?

例えば、

<?= isset($a) ?  $a :  ''; ?>

と記載した場合にはエラーなく動き、

<?php isset($a) ?  echo $a :  echo ''; ?>

と記載した場合は

syntax error, unexpected 'echo' (T_ECHO)

というエラーが発生します。

この場合、echo を使うには、

<?php if (isset($a) {
            echo $a;
          } else {
            echo "";
          } ?>

とするしかないのでしょうか?

もしifコロン構文1行で echo を使いたい場合はどのように書けばいいか不明なので、ご教示していただければ幸いです。

よろしくお願いいたします。

この回答を見るにはプレミアムサービスへの登録が必要です

プレミアムサービスとは?