php 他の場合は html の内部に埋め込む




(5)

HTML内にelseとelseifの条件を埋め込む正しい方法は何ですか?


Answer #1
<?php if ($foo) { ?>
    <div class="mydiv">Condition is true</div>
<?php } else { ?>
    <div class="myotherdiv">Condition is false</div>
<?php } ?>

Answer #2
 <?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 } ?>

Answer #3

読みやすいように、次の構文を使用することをお勧めします。

<? if ($condition): ?>
  <p>Content</p>
<? elseif ($other_condition): ?>
  <p>Other Content</p>
<? else: ?>
  <p>Default Content</p>
<? endif; ?>

オープンタグでphpを省略すると、設定でshort_open_tagsが有効になっている必要があります( これはデフォルトです) 。 関連する中括弧のない条件構文は常に有効で、この指令に関係なく使用できます。


Answer #4

htmlブロックの中に埋め込まれていると読みやすくなる傾向がある、 thisとそのalternate見てください。


Answer #5

人々が使用する複数の異なる方法があり、それぞれに独自の場所があります。

<?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ます)、 short_open_tag = trueオープンタグを<?phpから<?これは 、ほとんどのライブサーバ環境がこれをオフにしているので(Drupal、WordPress、Joomlaのような多くのCMSを含む)、 アドバイスされていません 。 私はすでにDrupalで短い手書きのタグをテストし、それがあなたのサイトを壊すことを確認したので、 <?phpshort_open_tagは、すべてのサーバー構成ではデフォルトではオンになっていないため、不明なサーバー構成用に開発する場合は、このように仮定してはなりません。 多くのホスティング会社では、 short_open_tagがオフになっています。

short_open_tagクイック検索では、830件の検索結果が表示されます。 https://.com/search?q=short_open_tagこれは、多くの人々が、彼らが遊ぶべきではない何かに問題を抱えています。

いくつかのサーバー環境とアプリケーションでは、 short_open_tagtrue設定されていても、 short_open_tag openタグでもコードがクラッシュします。

short_open_tagshort_open_tagで削除されるので、短縮タグは使用しないでください。

将来のすべてのPHPバージョンはshort_open_tag削除しshort_open_tag

短いタグ「ショートカット」を使用せず、代わりに完全なタグの組み合わせを使用することが推奨されています。XMLの広範な使用と他の言語によるこれらのタグの使用により、サーバーは簡単に混乱しやすくなります。誤ったコンテキストで間違ったコードを解析することになりますが、このショートカットはこのような長い間の機能であったため、下位互換性のためにサポートされていますが、使用しないことをお勧めします。 - Jelmer 9月25日9時00分PHP: "short_open_tag = On"が動作しない

そして

通常はPHPを以下のように記述します:。 allow_short_tagsディレクティブが有効になっている場合は、以下を使用できます。 また、ソートタグは余分な構文を提供します:これはと等しいです。

短いタグはクールに見えるかもしれませんが、そうではありません。 彼らはもっと多くの問題を引き起こします。 ああ...とIIRCはPHP6から削除されます。 Crozinは8月24日22時12分12秒PHP short_open_tagの問題に答えた

そして

理由の一部に答えるために、私はZend PHP 5の認証ガイドを引用したいと思います:「短いタグは、PHP世界の標準ですが、XMLヘッダーと競合するという大きな欠点があります。道端で多少落ち着いた」 - Fluffy 14:40 at 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の上司はコードの読みやすさと大学の教授の見分けやすさを気にします。

更新

duskwuffからのコメントに基づいて、その省略名が(PHP標準によって)落胆されているかどうかはまだ不明です。 私はこの答えを更新して、より多くの情報を得るでしょう。 しかし、移植性には悪いという簡略表記については、Web上で見つかった多くの文書に基づいています。 私はまだ個人的にそれを利用しない利点がないとあなたは、すべてのWebホストのためではないオンに設定に依存する必要があります。





html