我正在尝试创建一个带有PHP函数的<a>
标记,该函数返回带有html的图像源。
我的代码目前是这样的:
if (returnString('image')) : echo '<img src="'.returnString('image').'" />'; endif;
其中我打算的最终输出是:
<img src="http://..." />
但它唯一的回报是:
"http://..."
这只是一根绳子。为什么会这样?
编辑:我实际上想补充一点,我想检查函数是否存在(如果为空,应该有任何回声),这就是为什么我在开始时有if
。
如果我不检查这样的功能,它就会工作:
echo '<img src="'; returnString('image'); echo '" />';
此处不需要:
和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.'"/>';
}
希望这能有所帮助!
$str = returnString('image');
if (isset($str)) echo '<img src="'.$str.'" />';
试试这个:-
<?PHP
$s="http://www.sagmart.com/image/logoes.png";
if($s) {
echo '<img src="'.$s.'" />';
}
?>
我不知道你会返回String('image'),所以我使用了新的变量。
删除最后一个中的endif。
你说它在你这样做的时候有效:
echo '<img src="'; returnString('image'); echo '" />';
此代码由三部分组成。第一个是echo
并打印<img src="
。returnString()
函数显然是自己打印的。最后一个也是echo
并打印" />
。
但你说它不会在if
内部,当你把它放成:
echo '<img src="'.returnString('image').'" />';
但请注意,在这里,您不希望returnString()
函数自行打印。您希望它只是将要连接的值返回给您。如果函数真的自己打印,正如我上面所说的,那么您将在<img>
标签
src
内容