我正在尝试使用PHP函数创建一个<a>
标记,该函数返回带有html的图像源。
我的代码目前是:
if (returnString('image')) : echo '<img src="'.returnString('image').'" />'; endif;
我的预期最终输出是:
<img src="http://..." />
但它只返回这个:
"http://..."
这只是字符串。为什么会这样?
编辑:我实际上想补充一点我想检查函数是否存在(如果它的null应该有任何回显),这就是为什么我有{{1在开始时。
如果我不检查这样的功能,它可以工作:
if
答案 0 :(得分:2)
此处您不需要:
和endif
。
试试这个:
if (returnString('image')) echo '<img src="'.returnString('image').'" />';
或者,您可以将返回值存储在变量中(如上面建议的mplungjan)并在代码中使用它(更易读,IMO)。这样,您可以避免两次调用函数。
$src = returnString('image');
if (isset($src)) echo '<img src="'.$src.'" />';
我实际上想补充说我想检查函数是否存在,这就是为什么我在开始时有if。
有一个内置函数,完全出于同样的目的 - function_exists()
您可以执行以下操作:
if (function_exists('returnString')) {
$src = returnString('image');
echo '<img src="'.$src.'"/>';
}
希望这有帮助!
答案 1 :(得分:1)
$str = returnString('image');
if (isset($str)) echo '<img src="'.$str.'" />';
答案 2 :(得分:0)
试试这个: -
<?PHP
$s="http://www.sagmart.com/image/logoes.png";
if($s) {
echo '<img src="'.$s.'" />';
}
?>
我不知道你的returnString('image')所以我使用了新的变量。
删除最后一个endif。
答案 3 :(得分:0)
你说当你这样做时它会起作用:
echo '<img src="'; returnString('image'); echo '" />';
此代码包含3个部分。第一个是echo
并打印<img src="
。 returnString()
功能显然是自己打印的。最后一个也是echo
并打印" />
。
但你说它不会在if
里面,当你把它说成:
echo '<img src="'.returnString('image').'" />';
但是请注意,在这里你不希望returnString()
函数执行它自己的打印。你希望它只返回你要连接的值。如果该函数实际上是自己进行打印,如上所述,那么您将获得在src
标记之前显示的最终<img>
内容