この質問は少し古くなっていますが、いくつかの可能な解決策でより完全な答えを提供するためです。条件付きはヒアドキュメントの「内部」では許可されていませんが、ヒアドキュメントで条件付きを使用できます。
これらの例は、ヒアドキュメントの使用法のアイデアを与えるはずです。ヒアドキュメントの最初の行は、3未満の記号と、最初の行の終わりにスペースのない任意のテキストで始まることに注意してください。Enterキーを押します。ヒアドキュメントも同様に閉じる必要があります。ご存知かもしれませんが、ヒアドキュメントを開くために使用されるテキストは、ヒアドキュメントを閉じるために使用する必要があります。これは通常、セミコロンが後に続く必要はありません。末尾の空白や文字がセミコロンまたは最後のテキスト文字の後にないことを確認してから、Enterキーを押してください。
function doSomething($username = '', $status_id = '') {
if ('' != $username && '' != $status_id) {
$reply = <<<EOT
<a class ="reply" href="viewtopic.php?replyto=@{$username}&status_id={$status_id}&reply_name={$username}"> reply </a>
EOT;
} else {
$reply = <<<EOT
<h2>The username was not set!</h2>
EOT;
}
return $reply;
}
echo doSomething('Bob Tester', 12);
echo doSomething('Bob Tester');
echo doSomething('', 12);
特定の状況によっては、ヒアドキュメントで使用したい比較を行うためにクラスを使用すると役立つ場合があります。これを行う方法の例を次に示します。
class Test {
function Compare($a = '', $b = '') {
if ($a == $b)
return $a;
else
return 'Guest';
}
};
function doSomething($username = '') {
$Test = new Test;
$unme = 'Bob Tester';
$reply = <<<EOT
<h2>Example usage:</h2>
Welcome {$Test->Compare($username, '')}<br />
<br />
Or<br />
<br />
Welcome {$Test->Compare($username, $unme)}
EOT;
return $reply;
}
echo doSomething('Bob Tester');