-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块会减慢执行速度,那么我使用太多if块是否正确?如果我没有正确编码(我现在的感觉),那么if块的可能替代方案是什么?(我正在考虑使用switch块。)

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 case 才会对您有所帮助。在您的情况下,一个 swtich 块将毫无意义。

于 2012-11-07T07:41:43.590 回答