我实际上是将这个php代码转换为分配给var的字符串,这样我就可以在函数中返回它的值:
<?php if ($add_cta=='yes' ){?>
<a class="button" href="<?php echo strip_tags(trim($a_href)); ?>">
<?php echo strip_tags(trim($a_title)); ?>
</a>
<?php } ?>
我已将以上内容转换为以下内容:
$html = '
($add_cta == "Yes" ? .
' < a class = "button" href = "'.strip_tags(trim($a_href)).
'" > '.strip_tags(trim($a_title)).
' < /a>'. : "")
';
return $html;
但是变得意外。 ($add_cta == "Yes" ? .'
但这是连接字符串和php所必需的,对吗?我要去哪里了
答案 0 :(得分:1)
您必须更正单引号的用法。特别是第一个和最后一个单引号不是必需的。 PHP不会在单引号内执行任何代码。您可以使用双引号,但这只会打印变量,并且与HTML结合使用会使情况变得更加复杂。以下代码使用正确的单引号:
$html = ($add_cta == "Yes" ? .
'<a class="button" href="'.strip_tags(trim($a_href)).'">'.
strip_tags(trim($a_title)).
'</a>'. : '');
return $html;
或者仅使用if
语句:
$html = '';
if ($add_cta == "Yes")
{
$href = strip_tags(trim($a_href));
$title = strip_tags(trim($a_title));
$html .= ' <a class="button" href="'.$href.'">'.$title.'</a>';
}
return $html;
答案 1 :(得分:0)
尝试一下。您犯了一些我已解决的串联错误
$a_href = "stackoverflow.com";
$a_title = 'Anything';
$html =
($add_cta == "Yes" ?
' < a class = "button" href = "'.strip_tags(trim($a_href)) .
'" > '.strip_tags(trim($a_title)) .
' < /a>' : "")
;
echo $html;
答案 2 :(得分:0)
我认为最简单/易读的方法是使用一个单独的模板,该模板返回呈现的链接。
link-template.php
<?php
return '<a href="' . strip_tags(trim($a_href)) . '">' . strip_tags(trim($a_title)) . '</a>';
您要在以下位置使用此模板的方法/函数:
return $add_cta === 'Yes' ? include 'link-template.php' : '';
您应该考虑的是在包含模板之前先定义$a_href
和$a_title