簡體   English   中英

PHP if語句或

[英]PHP if Statement with OR

使用OR||似乎有一個神秘的問題 在PHP if語句中。 我的代碼是這樣的:

if ($region=='ibiza' || 'mallorca' || 'menorca' || 'andalucia' || 'basque' || 'cataluna' || 'centralspain' || 'greenspain' || 'pyrenees' || 'rioja' || 'valencia') {
    $GoTo = "/spain/".$region.".php";    
}

無論我給$region賦予什么值, $GoTo總是以/spain/$region.php即第一個if循環的/spain/$region.php為“ true”。 我還有其他方法可以執行此操作,但是我不明白為什么該方法不起作用。

您想要使用or語句,如下所示:

if ($region=='ibiza'||$region=='mallorca'||$region=='menorca'....)

但是在您的情況下,您可能要使用in_array()

$locals=array(ibiza','mallorca','menorca','andalucia','basque','cataluna','centralspain','greenspain','pyrenees','rioja','valencia')
if (in_array($region, $locals)) {
    $goto="something...";
}

@Fluffeh發布的答案是正確的。 編輯:@Findus的解釋也是正確的。

如果您想偷懶,可以這樣做:

if(in_array($region,array('ibiza','mallorca','menorca','...','..'))){}

這是因為語句“ mallorca”(及其后的語句)的計算結果為true。 您應該使用一個比較,例如$ region ==“ mallorca”,所有其他類似。

您可以像這樣模擬您的代碼:

<?php
    $selectedRegions1 = array('ibiza','mallorca','menorca','andalucia','basque','cataluna', 'centralspain','greenspain','pyrenees','rioja','valencia');
    $selectedRegions2 = array('brittany','burgundy','alps','aquitaine','loire','languedoc', 'paris','provence');
    $selectedRegions3 = array('grancanaria','lapalma','lanzarote','tenerife');
    $selectedRegions4 = array('atlas','essaouira','fez','marrakech');
    if (in_array($region, $selectedRegions1 )) {
       $GoTo = "/spain/".$region.".php";
    }elseif(in_array($region,$selectedRegions2)) {
        $GoTo = "/france/".$region.".php";
    }elseif (in_array($region,$selectedRegions3)) {
        $GoTo = "/canaries/".$region.".php";
    }elseif (in_array($region,$selectedRegions4)) {
    $GoTo = "/morocco/".$region.".php";
    }
?>

您的代碼的問題是您在'||'之后忘記了'$ region ==':

if ($region=='ibiza'|| $region=='mallorca'|| $region=='menorca'|| $region=='andalucia'|| $region=='basque'|| $region=='cataluna'|| $region=='centralspain'|| $region=='greenspain'|| $region=='pyrenees'|| $region=='rioja'|| $region=='valencia')

你有寫這樣的if語句

if ($region=='ibiza'|| $region=='mallorca'|| $region=='menorca'|| $region=='andalucia'|| $region=='basque'|| $region=='cataluna'|| $region=='centralspain'|| $region=='greenspain'|| $region=='pyrenees'|| $region=='rioja'||$region=='valencia') {
$GoTo = "/spain/".$region.".php";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM