簡體   English   中英

PHP-IF不檢查條件是否為真

[英]PHP - IF doesn't check if the condition is true

我正在根據用戶輸入的動詞結尾創建動詞共軛詞。

現在,它應該對以“ aic”,“ eic”,“ oic”(一個尾數數組)和“ bic”,“ fic”,“ mic”,“ nic”,“ pic”和“ wic”結尾的動詞起作用(另一組結尾)。

不幸的是,它一直將第一個數組分配給我放置的任何內容-即使它沒有以指定的結尾結尾。

這是頁面:www.alweso.2ap.pl/koniugator/index.php

這是代碼:

<?php

$verb = $_POST["verb"];
$last2 = substr ($verb, -2);
$last3 = substr($verb, -3);
$last4 = substr($verb, -4);
$last5 = substr($verb, -5);
$last6 = substr($verb, -6);
$last7 = substr($verb, -7);
$last8 = substr($verb, -8);
$last9 = substr($verb, -9);

$root2 = str_replace($last2, "", $verb);
$root3 = str_replace($last3, "", $verb);
$root4 = str_replace($last4, "", $verb);
$root5 = str_replace($last5, "", $verb);
$root6 = str_replace($last6, "", $verb);
$root7 = str_replace($last7, "", $verb);
$root8 = str_replace($last8, "", $verb);
$root9 = str_replace($last9, "", $verb);


$aic_eic_oic = array("je", "isz", "i", "imy", "icie", "ja" );   
$bic_fic_mic_nic_pic_wic = array("ie", "isz", "i", "imy", "icie", "ia" );   
$cic_lic_sic_zic = array("e", "isz", "i", "imy", "icie", "a" ); 

?>
    <div class="container">
      <div class="row">
      <div class="col-md-4 col-md-offset-4">

<?php

if ($last3 == ("aic" || "eic" || "oic")) {
        foreach ($aic_eic_oic as $one) {
        echo "<li>$root2$one</li>";
    }   
    }

elseif ($last3 == ("bic" || "fic" || "mic" || "nic" || "pic" || "wic")) {
        foreach ($bic_fic_mic_nic_pic_wic as $one) {
        echo "<li>$root2$one</li>";
        }
    }

    ?>

</div>
</div>
</div>

你不能做if($value = ($a || $b || $c))if(in_array($value, array($a, $b, $c))if($value = ($a || $b || $c))意思是: $value == true ,因為'foo' || 'bar' || 'barfoo'被評估為true(在PHP中非空字符串始終為true)。

誰告訴你那行得通? 你在哪里讀的? 那沒有任何文檔。 它不是那樣工作的。

if( in_array($last3, array("aic","eic","oic")))

// ...

elseif( in_array($last3, array("bic","fic","mic","nic","pic","wic")))

或者:

switch($last3) {
  case "aic":
  case "eic":
  case "oic":
    // do something
    break;
  case "bic":
  case "fic":
  case "mic":
  case "nic":
  case "pic":
  case "wic":
    // do something else
    break;
  default:
    // optional, do something to indicate error
}

您的if語句語法不正確,您不能執行if($last3 == (x || y || z))因為它不合邏輯,該語句讀取`if($ last3 ==(x == true || y == true || z == true))

您必須將其完整寫出:

if ($last3 == x || $last3 == y || $last3 ==z)

或使用in_array()

暫無
暫無

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

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