2011-03-23 89 views
1

等于多个字符串我发现了类似对这个问题的东西,但它是不相关的字符串。我只是在寻找写下面代码的最佳方式,我认为必须有一些我不知道的简短版本。如果变量在导航列表

<ul id="top-nav"> 
    <li <?php if($filename == "index.php"){echo ("class=\"current\"");} ?>><a href="index.php" title="Home">Home</a></li> 
    <li <?php if($filename == "cause.php"){echo ("class=\"current\"");} ?>><a href="cause.php" title="Cause">Cause</a></li> 
    <li><a href="order.php" title="Order">Order</a></li> 
    <li class="drop-down<?php if($filename == "grand-prize-one.php" | $filename == "grand-prize-two.php"){echo (" current");} ?>"><a href="grand-prize-one.php" title="Grand Prizes">Grand Prizes</a> 
     <ul> 
     <li><a href="grand-prize-one.php" title="Grand Prize One">Grand Prize One</a></li> 
     <li><a href="grand-prize-two.php" title="Grand Prize Two">Grand Prize Two</a></li> 
     </ul> 
    </li> 
    <li <?php if($filename == "early-bird.php"){echo ("class=\"current\"");} ?>><a href="early-bird.php" title="Early Bird">Early Bird</a></li> 
    <li class="drop-down<?php if($filename == "vehicles.php" || $filename == "vacations.php" || $filename == "other-prizes.php"){echo (" current");} ?>"><a href="vehicles.php" title="Electronics &amp; more">Other Prizes</a> 
     <ul> 
     <li><a href="vehicles.php" title="Vehicles">Vehicles</a></li> 
     <li><a href="vacations.php" title="Vacations">Vacations</a></li> 
     <li><a href="other-prizes.php" title="Electronics &amp; more">Electronics &amp; more</a></li> 
     </ul> 
    </li> 
    <li <?php if($filename == "winners.php"){echo ("class=\"current\"");} ?>><a href="winners.php" title="Winners">Winners</a></li> 
    </ul> 

是否有写$filename == "vehicles.php" || $filename == "vacations.php" || $filename == "other-prizes.php"较短的方法吗?我怀疑我会需要它来适应更多的5-10个可能的字符串。

谢谢

SOLUTION

对于那些谁发现了这个问题,我最后做的:

随着我的主要PHP

<?php 
// My other code 
$grandPrizes = array("grand-prize-one.php","grand-prize-two.php"); 
$otherPrizes = array("vehicles.php","vacations.php","other-prizes.php"); 
?> 

我的直列PHP中的li元素

<?php if (in_array($filename, $grandPrizes)) {echo " current";} ?> 
+0

请使用||而不是|进行或比较。 – eisberg 2011-03-23 15:15:18

+0

||是一个逻辑运算符,|是一个按位运算符 – 2011-03-23 15:21:22

+0

哦,哇。谢谢。我不知道。我不知道我从哪里得到这些信息,但它对我来说总是有效的。只是好奇,为什么它工作?如果任一$ a或$ b为真 – 2011-03-23 15:22:21

回答

5
$filenames = array("vehicles.php","vacations.php","other-prizes.php"); 
if (in_array($filename, $filenames)) { 
    // code here 
} 
2

你可以使用

if(in_array($filename, array("vehicles.php", "vacations.php", "other-prizes.php"))){ 
2

试试这个:

<?php 
    if(in_array($filename, array("vehicles.php", "vacations.php", "other-prizes.php")) { 
     echo ("class=\"current\""); 
    } 
?> 

in_array功能适用于你正在尝试做的。