그렇지 않으면 HTML 내부에 포함
html 안에 if else 및 elseif 조건을 포함하는 올바른 방법은 무엇입니까?
가독성을 위해 다음 구문을 권장합니다.
<? if ($condition): ?>
<p>Content</p>
<? elseif ($other_condition): ?>
<p>Other Content</p>
<? else: ?>
<p>Default Content</p>
<? endif; ?>
php
열린 태그를 생략 하려면 short_open_tags
구성에서 사용하도록 설정 해야 합니다 (기본값) . 관련 중괄호가없는 조건부 구문은 항상 활성화되어 있으며이 지시문에 관계없이 사용할 수 있습니다.
<?php if ($foo) { ?>
<div class="mydiv">Condition is true</div>
<?php } else { ?>
<div class="myotherdiv">Condition is false</div>
<?php } ?>
@Patrick McMahon의 응답에서 두 번째 주석 ( $ first_condition은 false 이고 $ second_condition은 true )이 완전히 정확하지 않습니다.
<?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 전문가가 아니므로 이것이 IF this OR that ELSE that 또는 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 } ?>
사람들이 사용하는 여러 가지 방법을 찾을 수 있으며 각각 고유 한 위치가 있습니다.
<?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 열기 태그를 <?php
에서 <?
. 대부분의 라이브 서버 환경에서이 기능이 꺼져 있으므로 권장되지 않습니다 (Drupal, WordPress 및 Joomla와 같은 많은 CMS 포함). 나는 이미 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 열기 태그가 여전히 코드를 충돌시킵니다 true
.
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
"It's been recommended for several years that you not use the short tag "short cut" and instead to use the full tag combination. With the wide spread use of XML and use of these tags by other languages, the server can become easily confused and end up parsing the wrong code in the wrong context. But because this short cut has been a feature for such a long time, it's currently still supported for backwards compatibility, but we recommend you don't use them." – Jelmer Sep 25 '12 at 9:00 php: "short_open_tag = On" not working
and
Normally you write PHP like so: . However if allow_short_tags directive is enabled you're able to use: . Also sort tags provides extra syntax: which is equal to .
Short tags might seem cool but they're not. They causes only more problems. Oh... and IIRC they'll be removed from PHP6. Crozin answered Aug 24 '10 at 22:12 php short_open_tag problem
and
To answer the why part, I'd quote Zend PHP 5 certification guide: "Short tags were, for a time, the standard in the PHP world; however, they do have the major drawback of conflicting with XML headers and, therefore, have somewhat fallen by the wayside." – Fluffy Apr 13 '11 at 14:40 Are PHP short tags acceptable to use?
You may also see people use the following example:
<?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 } ?>
This will work but it is highly frowned upon as it's not considered as legible and is not what you would use this format for. If you had a PHP file where you had a block of PHP code that didn't have embedded tags inside, then you would use the bracket format.
The following example shows when to use the bracket method
<?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*/
}
?>
If you're doing this code for yourself you can do what you like, but if your working with a team at a job it is advised to use the correct format for the correct circumstance. If you use brackets in embedded html/php scripts that is a good way to get fired, as no one will want to clean up your code after you. IT bosses will care about code legibility and college professors grade on legibility.
UPDATE
based on comments from duskwuff its still unclear if shorthand is discouraged (by the php standards) or not. I'll update this answer as I get more information. But based on many documents found on the web about shorthand being bad for portability. I would still personally not use it as it gives no advantage and you must rely on a setting being on that is not on for every web host.
참고URL : https://stackoverflow.com/questions/4731810/if-else-embedding-inside-html
'code' 카테고리의 다른 글
iOS7에서 UIAlertView에 UITextField를 추가 할 수 없습니다… iOS 6에서 작동합니다. (0) | 2020.11.19 |
---|---|
npm에서 nodemon을 찾을 수 없음 (0) | 2020.11.19 |
MongoDB가 작동하지 않습니다. (0) | 2020.11.19 |
임시 비밀번호를 자동으로 생성 한 후 MySQL에 액세스 할 수 없습니다. (0) | 2020.11.19 |
디버거가 C #의 다른 프로세스에 연결되어 있는지 감지하는 방법이 있습니까? (0) | 2020.11.19 |