我有这个变量$ url,我需要在引用的HTML中打印,如果是条件的话,它在PHP里面。
<?php
$url = $thumb['0'];
if ( in_category( 'News' )) {
//nothing here
} else {
echo '<div class="image-holder"><img src="$url;" alt="Post photo" class="image-border"></div>';
}
?>
但 src =“$ url;”在HTML代码中被解释为 src =“$ url;”。它不会解释为变量。
我该如何解决?
答案 0 :(得分:1)
你可以用php中的点连接字符串
e.g
echo "This"."is"."a"."sample";
同样有变量:
echo '<div class="image-holder"><img src="'.$url.'" alt="Post photo" class="image-border"></div>';
答案 1 :(得分:1)
在PHP中使用字符串时,重要的是要实现单引号和双引号字符串之间的区别。
\'
,对于文字反斜杠,\\
。 PHP代码被视为简单文本,因此转义序列如\n
(unix换行符的序列)也是如此。这是用于简单字符串文字的格式,如“Hello World!”。 \n
被解释为换行符,$var
被替换为变量$var
的值。所以这更强大,但您还必须更多地考虑如何解释字符串。如果您解释的php变得复杂(或者与非php相邻,可能看起来像php),您可以use braces澄清您的意思。请注意,有许多理由不将字符串与PHP代码混合使用。通常sprintf
,heredoc或简单连接(使用.
)可以使事情更清晰,正如其他几个答案中所建议的那样。
答案 2 :(得分:0)
使用双引号并用花括号示例
包围变量echo "This is my variable. It equals {$var}";
答案 3 :(得分:0)
我喜欢从输出中分离业务逻辑。这与PHP's alternative syntax for control structures结合使用,可以保持HTML输出的清晰和易读性。
见这个例子:
<?php
// Do some things here
$url = $thumb['0'];
// Below this point we output HTML
// Only use simple control structures here, this keeps your HTML clean and easy to read
?>
<?php if (in_category('News')): ?>
<?php else: ?>
<div class="image-holder"><img src="<?php echo $url; ?>" alt="Post photo" class="image-border">
</div>
<?php endif; ?>
由于if语句的第一部分为空,您可以简化代码:
<?php if (!in_category('News')): ?>
<div class="image-holder"><img src="<?php echo $url; ?>" alt="Post photo" class="image-border">
</div>
<?php endif; ?>
答案 4 :(得分:0)
你可以这样做
echo '<div class="image-holder"><img src="'.$url.'" alt="Post photo" class="image-border"></div>';
或
echo "<div class='image-holder'><img src='$url' alt='Post photo' class='image-border'></div>";
答案 5 :(得分:0)
如果您需要处理大部分HTML并且不希望必须从双引号更改为单引号[技术上不允许HTML规范],或者转义所有双引号[在枪托中的痛苦],或者不断地放入和退出<?php ?>
标签[丑陋,难以维护],然后使用HEREDOC。例如:
echo <<<_end_
<div class="image-holder"><img src="$url;" alt="Post photo" class="image-border"></div>
_end_;
变量被扩展,没有引号需要转义,你的所有梦想都会成真。
或者,您可以坚持使用单引号字符串,并使printf()
变得舒适,这本身就是一个非常有用的功能。例如:
printf('<div class="image-holder"><img src="%s;" alt="Post photo" class="image-border"></div>', $url);
答案 6 :(得分:-1)
这样做,(编辑:简化代码)
<?php
$url = $thumb['0'];
if ( ! in_category( 'News' ) ) {?>
<div class="image-holder">
<img src="<?=$url?>" alt="Post photo" class="image-border" />
</div>
<?}?>