2016-04-12 2 views
0

私はこのような何かをしたい:ストラクチャPHPは

<?php if ($somecondition) : ?> 
<p style='font-size: 18px;color:#DF5F5F'><strong>An error occurred!</strong></p> 
<!-- some more html --> 

<?php else: 
    chop($xpath); 
    $alot; 
    $ofphp; 
?> 

<ul> 
<li>More</li> 
<li>HTML</li> 
<li>With: <?php echo strtoupper($vaiables); ?></li> 
</ul> 

<?php 
    if ($anothercondition) { 
    if ($andanother) { 
     echo '<p>Some HTML</p>'; 
    } 
    else { 
     echo '<p>Some other HTML</p>'; 
    } 
    } 
endif; 
?> 

あなたは、私は、全体が一つの条件$someconditionとそのほかの代替によってsurroundeしたい見ることができるように。それぞれの内部には、HTML出力 PHPのためのスペースがあります。しかし、私は各HTML要素のためにエコーを使いたくありません(2行目のように)。

if ($condition):if ($condition() {}を混在させることはできますか? $anotherconditionブロックでエコーを使わずに、上記のコードを正しく構造化する方法はありますか?一貫ブラケットを使用しないのはなぜ

<?php 
if ($somecondition) { 
    ?> 
    html code 
    <?php 
} else { 
    ?> 
    html code 
    <?php 
    if ($anothercondition) { 
     ?> 
     another html code 
     <?php 
    } 
} 
+0

あなたのコードは書かれたとおりに動作するはずです。何かエラーがありますか? – Barmar

+0

@Barmar私は500のサーバーエラーを持っていたので、これはエラーだと思った。さらなる調査の後、どこかで括弧を忘れてしまった... –

+0

良いコードエディタを使用すると、それはあなたのような問題を識別します。 – Barmar

答えて

0

コントロールフローステートメントのブレースとコロンスタイルを混ぜても問題ありません。唯一の要件は、あなた書き込み

if ($cond): 
    // code 
else { 
    // other code 
} 
endif; 

しかし、あなたがネストしていることはできませんつまり、あなたがifのために特定のスタイルを使用している場合、あなたはそれに対応するelseelseif句に同じスタイルを使用しなければならないことですそれぞれのレベルで異なるスタイルを使用することができます。

0

は、あなたがこのような何かを意味していますか?

<?php if ($somecondition) { ?> 
<p style='font-size: 18px;color:#DF5F5F'><strong>An error occurred!</strong></p> 
<!-- some more html --> 

<?php } else { 
    chop($xpath); 
    $alot; 
    $ofphp; 
?> 

<ul> 
<li>More</li> 
<li>HTML</li> 
<li>With: <?php echo strtoupper($vaiables); ?></li> 
</ul> 

<?php } 
    if ($anothercondition) { 
    if ($andanother) { 
     echo '<p>Some HTML</p>'; 
    } 
    else { 
     echo '<p>Some other HTML</p>'; 
    } 
    } 
?>