Этот вопрос немного устарел, но дает более полный ответ с несколькими возможными решениями.Условные выражения не допускаются «внутри» heredoc, но вы можете использовать условные выражения с heredocs.
Эти примеры должны дать вам представление об использовании heredoc.Обратите внимание, что первая строка heredoc начинается с 3 символов меньше и некоторого произвольного текста без пробела в конце первой строки.Нажмите Ввод.Эредок должен быть закрыт аналогичным образом.Как вы, вероятно, знаете, текст, используемый для открытия heredoc, должен использоваться для его закрытия, за которым обычно, но не обязательно, ставится точка с запятой.Убедитесь, что после запятой или последнего текстового символа нет пробельных символов или пробелов, а затем нажмите клавишу ввода.
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');