我正在阅读我公司网页的一些wordpress代码,以便了解它们。但是,我发现大括号里面没有完成大括号。就像下面的代码一样,为什么第二行中的花括号没有在脚本标签中完成,而是放在最后?
如果要继续循环,为什么脚本标签已关闭?为什么不继续呢?
while(have_posts())
{ the_post(); ?>
<?php $postMetas = get_post_meta(get_the_ID()); ?>
<?php /*echo "<pre>"; print_r($postMetas); die; */?>
<div class="row top2">
<div class="overlay">
<div class="overlay-gradient"></div>
</div>
<div class="video">
<?php if(get_post_meta(get_the_ID(), 'wpcf-select-image', true) == 1){ ?>
<img src="<?php echo get_post_meta(get_the_ID(), 'wpcf-image', true); ?>" alt="">
<?php }else{ ?>
<?php } ?>
</div>
<?php } ?>
答案 0 :(得分:2)
在PHP中,大括号{}
表示代码块的开头和结尾。该代码块必须完整,否则在编译时会出现E_FATAL
错误。
抛出的是开始和结束括号位于不同的<?php ?>
块中。只要您匹配括号,就允许这样做。至于为什么使用它,你可以在代码块周围放置非PHP代码(在本例中为HTML),而不是使用长echo
字符串。
如果这太令人困惑,您可以随时使用alternative syntax
<?php while(have_posts(): ?>
Your while block code here
<?php endwhile ?>
答案 1 :(得分:1)
PHP中的花括号可以放在php脚本标签之外吗?
没有。如果您不在PHP标记中使用它们,那么PHP会将它们解释为文本 因此,PHP将返回错误,并且可能是“致命的”,因为某些需要大括号 - 例如循环。他们不在PHP标签内将意味着PHP只会确定他们缺少。
为什么第二行中的花括号未在脚本标记中完成 在那里,但放在最后?
它就在它需要的地方。循环开始的位置和循环的位置之间的代码需要包含在循环中。
如果要继续循环,为什么脚本标签已关闭?为什么不 继续吗?
您可以根据需要或要求打入和关闭PHP。 众所周知,Wordpress遵循这种模式,我相信它可以让它(应该)更容易使用代码,而不是只有一个完整的PHP文件,它将HTML分离出来。
打入和退出PHP标签并不总是一个好主意,但“适当”的方式和时间主要取决于个人选择。
有更坚实的“理由”(在网站上搜索此类问题/辩论),但个人我更喜欢将其保持在最低限度。
PHP和HTML之间的实际交换太多会导致它比你在PHP中编写它所有的可读性更低。
答案 2 :(得分:0)
您还可以使用 shortecho 代替常规<?php echo
通常,标准的输出数据方式
<h1><?php echo 'Heading title'; ?></h1>
做同样事情的速记方式。
<h1><?='Heading title'; ?></h1>
两者都给出相同的结果,你决定哪一个更适合更容易阅读。请注意,<?=
不是短标签,因为默认情况下某些服务器上没有启用短标签,但您可以随时依赖。
关于这个
PHP中的花括号可以放在php脚本标签之外吗?
是的,他们可以,但是,那不再是php了。在99%,这将是一些JavaScript对象内容。 *(笑话)
真实答案 - 没有。