5

これを試しましたが、構文エラーしか発生しませんでした。

<?php

$a = true;
$str = <<< EOF
{$a ? 1 : 2}
EOF;
echo $str;

ヒアドキュメント内でそのような種類の条件文を使用することは可能ですか?

4

4 に答える 4

8

いいえ。残念ながら、PHPの文字列補間はそれほど堅牢ではありません。2つの文字列を連結するか、その少しのロジックを別の変数に事前に割り当てる必要があります。

<?php
$a = true;
$b = $a ? 1 : 2;
$str = <<<EOF
Hello, world! The number of the day is: $b
EOF;
echo $str;
于 2010-06-10T04:11:34.070 に答える
2

私はノーと言うでしょう。

関数呼び出しを実行できない理由と考えられる回避策については、この関連する質問を参照してください。HEREDOC文字列内でのPHP関数の呼び出し

その核心は、おそらくヒアドキュメントの前に三項演算子を変数に割り当てる必要があるということです。

于 2010-06-10T04:11:54.327 に答える
2

次のようなことができます。

$values = array('1', '2');

$str = <<<EOF
{$values[$a]}
EOF;
于 2011-12-12T15:19:04.287 に答える