在else中嵌入else和elseif条件的正确方法是什么?
Answers:
在@Patrick McMahon的回复中,此处的第二条注释($ first_condition为false,$ second_condition为true)并不完全准确:
<?php if($first_condition): ?>
/*$first_condition is true*/
<div class="first-condition-true">First Condition is true</div>
<?php elseif($second_condition): ?>
/*$first_condition is false and $second_condition is true*/
<div class="second-condition-true">Second Condition is true</div>
<?php else: ?>
/*$first_condition and $second_condition are false*/
<div class="first-and-second-condition-false">Conditions are false</div>
<?php endif; ?>
ELSEIF火灾是否$ first_condition是真的还是假的,因为这样做额外的ELSEIF语句,如果有多个。
我不是PHP专家,所以我不知道这是说这句话还是那句话的正确方法,或者是否有另一种/更好的方法来用PHP编写代码,但这对于那些正在寻找的人来说是一个重要的区别。 OR条件与ELSE条件。
来源是w3schools.com和我自己的经验。
if(true){ echo 'here';} elseif (true){ echo 'second';} else { echo 'whaddup';}exit;输出:“ here”在PHP 5.5上
<?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 } ?>
您会发现人们使用多种不同的方法,并且每个人都有自己的位置。
<?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(通常可以在line 141默认php.ini文件中找到该属性),则可以将php open标签从替换<?php为<?。不建议这样做,因为大多数实时服务器环境都已将其关闭(包括许多CMS,如Drupal,WordPress和Joomla)。我已经在Drupal中测试了短手开放标签,并确认它将破坏您的网站,所以请坚持使用<?php。short_open_tag默认情况下,不是在所有服务器配置中都处于“开”状态,并且在开发未知服务器配置时不得假定为“开”。许多托管公司已short_open_tag关闭。
short_open_tag在stackExchange中快速搜索会显示830个结果。https://stackoverflow.com/search?q=short_open_tag
很多人在一些他们不应该玩的东西上有问题。
在某些服务器环境和应用程序中,即使将short_open_tag设置为,简短的php open标签仍将使您的代码崩溃true。
short_open_tag 将在PHP6中删除,因此请勿使用简写标记。
所有未来的PHP版本将被删除 short_open_tag
“几年来,建议您不要使用快捷标签“ short cut”,而应使用完整标签组合。随着XML的广泛使用以及其他语言对这些标签的使用,服务器很容易造成混乱和混乱。最终会在错误的上下文中解析错误的代码。但是由于这种快捷方式已经存在了很长时间了,因此目前仍支持向后兼容,但我们建议您不要使用它们。” – Jelmer 2012年9月25日9:00 php:“ short_open_tag = On”不起作用
和
通常,您是这样编写PHP的:但是,如果 启用allow_short_tags指令,则可以使用:。此外,sort标签还提供了额外的语法:等于。
短标签似乎很酷,但事实并非如此。它们只会引起更多问题。哦...还有IIRC,它们将从PHP6中删除。Crozin在2010年8月24日22:12回答了 php short_open_tag问题
和
为了回答其中的一部分,我引用了Zend PHP 5认证指南:“短时间标签曾经是PHP世界中的标准;但是,它们确实具有与XML标头冲突的主要缺点,因此,有点落在路边。” – Fluffy 2011年4月13日下午14:40 是否可以使用PHP短标签?
您可能还会看到人们使用以下示例:
<?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老板将关心代码的易读性,而大学教授则对易读性进行评分。
更新
基于黄昏的评论,尚不清楚是否不鼓励使用速记方式(根据php标准)。当我获得更多信息时,我将更新此答案。但是基于网上发现的许多关于速记不利于便携性的文档。我个人仍然不会使用它,因为它没有任何优势,您必须依靠每个Web主机都不使用的设置。