-1

最近、PHPでショッピングサイトをデザインしています。チェックアウトページで、ユーザーがログインしているかどうかを何度も確認する必要があります。つまり、ユーザーがログインしている場合は、 Signin divを非表示にして Shipping divを表示します。

<section class="panels <?php if(!isset($_SESSION['username'])) echo"unactivepanel"; else echo"activepanel";?>" id="Sign In">
        <div class="wrapper1" >
            <ul>
            <li><input type="email" placeholder="Enter your email address" required/></li>
            <li class="inf">(will only be used for sending you order information.)</li>
            <fieldset><legend class="orb"> OR</legend>
            <li><input type="button" value="Sign In to booksmore" class="sb si llb" /></li></fieldset>
            <fieldset><legend class="orb"> OR</legend>
            <li>Sign In using any of following service:</li>
            <li>
                <div class="box1 fc">Facebook</div>
                <div class="box1 tw">Twitter</div>
                <div class="box1 gg">Google</div>
                <div class="box1 oi">Open Id</div>
            </li></fieldset>

            </ul>
        </div>
    </section>
    <section class="panels <?php if(!isset($_SESSION['username'])) echo"unactivepanel"; else echo"activepanel";?>unactivepanel" id="Shipping"></section>
    <section class="panels unactivepanel" id="Confirm"></section>

私が研究したことは、ブロックが実行速度を遅くする場合に使用するものが多すぎることです。私がそれを正しくコーディングしていない場合(私が今感じていること)、 ifブロックの代替案は何ですか?(スイッチブロックを使おうと思っていました。)

4

2 に答える 2

3

同じ if else をすべての場所で使用している場合は、簡単にリファクタリングできます。

<?php 
if(!isset($_SESSION['username'])) 
 $class = "unactivepanel"; 
else 
 $class = "activepanel";
?>

次のように、必要な場所で echo $class を実行するだけです

 <section class="panels <?php echo $class;?>unactivepanel" id="Shipping"></section>
于 2012-11-07T07:38:45.700 に答える
1

タルン そうです。また、switch ケースは、すべて単一の変数の値に依存する可能性のあるコード ブロックが複数ある場合にのみ役立ちます。あなたの場合、switchブロックは無意味です。

于 2012-11-07T07:41:43.590 に答える