正在中断IF语句的$html.=‘

时间:2020-01-27 作者:imcamelliott

Hi-Stack Exchange社区,

我希望了解如何在下面的代码中插入IF语句:

$html.= \'<span class="cat">In <a href="\'. $typeLink . \'">\' . $terms_string . \'</a></span>\';
本质上,我想在超链接之前插入一个glyph,该超链接根据$terms\\u字符串的值进行更改(使用IF和ELSEIF)。我认为下面这行可能接近我需要的内容,但我不确定我是否在PHP和HTML之间准确切换(肯定是用户错误,但这是语法错误吗?)。

$html.= \'<span class="cat">In \'. if($terms_string === "Articles") { glyph HTML code }; .\' <a href="\'. $typeLink . \'">\' . $terms_string . \'</a></span>\';
如有任何见解,将不胜感激。

1 个回复
最合适的回答,由SO网友:Howdy_McGee 整理而成

这是比WordPress特定的PHP更通用的PHP。

String concatenation 在将两个Sting与. 操作人员在字符串串联过程中,一些基本的PHP关键字将不适用,您需要使用速记对等词。在这种情况下,您可以使用ternary (conditional) operator

$html.= \'<span class="cat">In \'. ( $terms_string === "Articles" ) ? \'glyph HTML code\' : \'\' .\' <a href="\'. $typeLink . \'">\' . $terms_string . \'</a></span>\';
更好、更可读的格式可能是将HTML输出分解为多个字符串:

$html.= \'<span class="cat">In \';

if( "Articles" == $terms_string ) {
    $html .= \'glyph HTML code\';
}

$html .= \'<a href="\'. $typeLink . \'">\' . $terms_string . \'</a></span>\';