0

我正在尝试<a>使用 PHP 函数创建一个标签,该函数返回带有 html 的图像源。

我的代码目前是这样的:

if (returnString('image')) : echo '<img src="'.returnString('image').'" />'; endif;

我预期的最终输出将是:

<img src="http://..." />

但它只返回这个:

"http://..."

这只是字符串。为什么会这样?

编辑:我实际上想补充一点,我想检查函数是否存在(如果它的 null 应该有任何回声),这就是为什么我if一开始就有。

如果我不检查这样的功能,它会起作用:

echo '<img src="'; returnString('image'); echo '" />';
4

4 回答 4

2

你不需要:andendif在这里。

试试这个:

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.'"/>';
}

希望这可以帮助!

于 2013-08-31T07:22:55.790 回答
1
$str = returnString('image');
if (isset($str)) echo '<img src="'.$str.'" />'; 
于 2013-08-31T07:23:51.190 回答
0

试试这个 :-

<?PHP 
$s="http://www.sagmart.com/image/logoes.png";

if($s) {
echo '<img src="'.$s.'" />';
}
?>

我不知道你 returnString('image') 所以我使用了新变量。

删除最后的endif。

于 2013-08-31T07:29:01.580 回答
0

当你这样做时,你说它有效:

echo '<img src="'; returnString('image'); echo '" />';

这段代码有 3 个部分。第一个是echo和打印<img src="。该returnString()功能显然是自己打印的。最后也是echo和打印" />

但是你说它不会在里面if,当你把它说成:

echo '<img src="'.returnString('image').'" />';

但是请注意,在这里您不希望该returnString()功能进行自己的打印。您希望它只是将要连接的值返回给您。如果函数实际上执行自己的打印,如我上面所说,那么您将获得在标签src之前显示的最终内容<img>

于 2013-08-31T07:42:13.313 回答