什么是正确的方式嵌入如果else和elseif条件内的HTML?如果其他嵌入HTML
回答
为了方便阅读,我推荐使用以下语法。
<? if ($condition): ?>
<p>Content</p>
<? elseif ($other_condition): ?>
<p>Other Content</p>
<? else: ?>
<p>Default Content</p>
<? endif; ?>
注意,在打开的标签省略php
确实要求short_open_tags
您的配置中,which is the default启用。相关的无花括号条件语法始终处于启用状态,无论此指令如何都可以使用。
该示例在语句中缺少'PHP'。 – 2014-10-31 17:46:45
@AdamYoungers这些被称为short_open_tags,虽然你可能不熟悉它们,但它们是完全有效的。 – coreyward 2014-10-31 19:06:57
我并不熟悉它们。我尝试过使用上面的代码,结果破坏了我的页面。快速搜索,我看到你必须在您的php.ini文件启用此... http://stackoverflow.com/questions/2185320/how-to-enable-php-short-tags – 2014-10-31 19:20:10
<?php if ($foo) { ?>
<div class="mydiv">Condition is true</div>
<?php } else { ?>
<div class="myotherdiv">Condition is false</div>
<?php } ?>
你会发现人们使用多种不同的方法,他们都有自己的地方。
<?php if($first_condition): ?>
/*$first_condition is true*/
<?php elseif ($second_condition): ?>
/*$first_condition is false and $second_condition is true*/
<?php else: ?>
/*$first_condition and $second_condition are false*/
<?php endif; ?>
如果在php.ini属性short_open_tag = true
(这是在默认的php.ini文件line 141
通常发现的),你可以取代你的php开放标签从<?php
到<?
。 这不建议,因为大多数现场服务器环境都已关闭(包括许多CMS,如Drupal,WordPress和Joomla)。我已经在Drupal中测试了短手开放标签并确认它会破坏您的网站,所以坚持使用<?php
。 short_open_tag
默认情况下在所有服务器配置中都不处于开启状态,因此在为未知服务器配置开发时不得假定为这样。许多托管公司已将short_open_tag
关闭。
快速搜索stackExchange中的short_open_tag
显示830个结果。 https://stackoverflow.com/search?q=short_open_tag 这是很多人有问题,他们不应该玩的东西。
在某些服务器环境和应用程序中,即使将short_open_tag
设置为true
,短手php开放标记仍然会使您的代码崩溃。
short_open_tag
将被删除在PHP6中,所以不要使用短手标记。
所有未来的PHP版本将下探short_open_tag
- http://www.askapache.com/php/shorthand-short_open_tag.html
- https://softwareengineering.stackexchange.com/questions/151661/is-it-bad-practice-to-use-tag-in-php
“这是被推荐了好几年,你不使用短 标签” 捷径“而是使用全标签 的组合。随着广泛使用XML以及 其他语言对这些标记的使用,服务器可能会变得很容易混淆,并最终在错误的上下文中解析错误的代码 。但是由于这个短暂的 被削减已经是这么长时间的功能,目前仍支持 向后兼容,但我们建议您不要使用 它们。“ - Jelmer月25 '12 9:00 php: "short_open_tag = On" not working
和
通常你编写PHP像这样:但是,如果 allow_short_tags指令启用你能使用。 。此外排序标签提供了额外的语法:这 等于
短标签看起来很酷,但他们不是,他们只会导致更多的问题 哦......和IIRC他们会b ... e从PHP6中删除。 Crozin回答8月24日'10 22:12 php short_open_tag problem
和
要回答为什么部分,我想引用的Zend PHP 5认证指南: “短标签是,对于这是PHP世界的标准;但是,它们确实存在与XML标题相冲突的主要缺陷,因此,它们在某种程度上已经有所下降了。“ - 蓬松4月13日'11 在14:40 Are PHP short tags acceptable to use?
您还可以看到人们使用下面的例子:
<?php if($first_condition){ ?>
/*$first_condition is true*/
<?php }else if ($second_condition){ ?>
/*$first_condition is false and $second_condition is true*/
<?php }else{ ?>
/*$first_condition and $second_condition are false*/
<?php } ?>
这会工作,但它是建立,因为它是不被视为高度皱起眉头清晰的,而不是你会使用这种格式。如果您有一个PHP文件,其中有一段PHP代码没有嵌入标签,那么您可以使用括号格式。
下面的示例演示时使用的支架方法
<?php
if($first_condition){
/*$first_condition is true*/
}else if ($second_condition){
/*$first_condition is false and $second_condition is true*/
}else{
/*$first_condition and $second_condition are false*/
}
?>
如果你正在做这个代码为自己,你可以做你喜欢的,但如果你有一个团队工作,在工作时,建议为正确的情况使用正确的格式。如果您在嵌入式html/php脚本中使用括号是一种很好的解决方法,因为没有人会希望在您之后清理代码。 IT老板会关心代码的易读性和大学教授的易读性等级。
UPDATE
基于从duskwuff其还不清楚意见,如果速记气馁(由PHP标准)或没有。随着我获得更多信息,我会更新这个答案。但是基于网上发现的许多文件,关于速记对便携性不利。我个人还是不会使用它,因为它没有任何优势,你必须依靠一个不在每个虚拟主机上的设置。
编辑:我正在寻找@帕特里克的答案,但显然StackOverflow认为我的声誉不够好。我觉得这是一个重要的说明,因为登陆这里的人正在这样学习。如果因为它不回答问题而被删除,那就这样吧。如果帕特里克可能会更正他的答案,那么删除这不会造成任何损害
我看到这是一个老问题/答案,但它在Bing搜索中排名很高,所以我不得不为这些PHP混淆的灵魂在这里着陆添加此评论。
在@Patrick麦克马洪的回应,这里的第二个评论($ first_condition是假和$ second_condition是真的)并不完全准确:
<?php if($first_condition): ?>
/*$first_condition is true*/
<?php elseif ($second_condition): ?>
/*$first_condition is false and $second_condition is true*/
<?php else: ?>
/*$first_condition and $second_condition are false*/
<?php endif; ?>
ELSEIF火灾是否$ first_condition是真的还是假的,如果有多个,那么额外的elseif报表。
我不是PHP的专家,所以我不知道这是否是说的正确方式,如果这样或那样的事,那或者如果有另一个/更好的方式来在PHP代码中,但这将对那些寻找OR条件与ELSE条件的人来说是一个重要的区别。
来源是w3schools.com和我自己的经验。
<?php if (date("H") < "12" && date("H")>"6") { ?>
src="<?php bloginfo('template_url'); ?>/images/img/morning.gif"
<?php } elseif (date("H") > "12" && date("H")<"17") { ?>
src="<?php bloginfo('template_url'); ?>/images/img/noon.gif"
<?php } elseif (date("H") > "17" && date("H")<"21") { ?>
src="<?php bloginfo('template_url'); ?>/images/img/evening.gif"
<?php } elseif (date("H") > "21" && date("H")<"24") { ?>
src="<?php bloginfo('template_url'); ?>/images/img/night.gif"
<?php }else { ?>
src="<?php bloginfo('template_url'); ?>/images/img/mid_night.gif"
<?php } ?>
- 1. 从其他网站嵌入HTML部分?
- 2. 嵌套,如果其他从主跳出如果其他在javascript
- 3. 试图嵌入,如果内部其他如果的
- 4. 嵌套,如果其他人不工作
- 5. 嵌套如果/其他陈述
- 6. 替代嵌套,如果其他语句
- 7. PageViewController嵌入到其他PageViewController
- 8. 如果再加入其他加入
- 9. Facebook如何嵌入其他媒体?
- 10. 使用嵌入标签将其他页面嵌入到HTML文件中?
- 11. JavaScript如果其他嵌套去上限如果
- 12. 有关将html嵌入到其他站点的提示
- 13. 在JSF消息中嵌入链接(或其他html)
- 14. 使用HTML 5或其他内容嵌入音频文件?
- 15. 加入ID如果存在其他列
- 16. 如果其他.htaccess
- 17. 其他如果javascript
- 18. Javascript其他,如果其他的一切?
- 19. cycle.js - 嵌入组件在其他组件
- 20. 麻烦嵌入EJS EJS其他标签
- 21. 嵌入Youtube视频涵盖其他div
- 22. Pyparsing OneOrMore的嵌入其他OneOrMore的
- 23. 限制youtube嵌入其他网站
- 24. 嵌入其他语言的Flex /野牛
- 25. 如果/其他如果总是去其他语句
- 26. 训练一些嵌入,保持其他嵌入
- 27. 使用嵌入或其他嵌入外部网址与Laravel
- 28. 与其他HTML
- 29. 如果其他如预期
- 30. PHP如果其他问题,总是显示其他结果
你确定你的意思不是相反吗? – 2011-01-19 04:43:32