2016-03-12 26 views
-1

此腳本讀取我使用否則,如果它不工作,從陣列的文字,但如果我用,如果它工作,我想用別的,如果任何人都可以提出一個方法如何做到這一點不然,如果用foreach不工作

if(isset($_REQUEST["maininput"])){ 
foreach($id as $uni){ 
    if (preg_match("/" . $uni . "/i", $_POST['maininput'])){ 
     $founda = $uni; 
     $data = $uni . "\n"; 
     $fname = "accepted.txt"; 
     $file = fopen($fname, 'a');//creates new file 
     fwrite($file, $data); 
     fclose($file); 
     break; 
    } 

} 
}else if{ 
foreach($coures as $mac){ 
    if (preg_match("/" . $mac . "/i", $_POST['maininput'])){ 
     $found = $mac; 
     $data = $mac; 
     $fname = "accepted.txt";//generates random name 
     $file = fopen($fname, 'a');//creates new file 
     fwrite($file, $data); 
     fclose($file); 
     break; 
    } 

} 
}else{ 
foreach($university as $un => $unis){ 
    if (preg_match("/" . $un . "/i", $_POST['maininput'])){ 
     $founde = $unis; 
     //$data = serialize($unis); 
     $fname = "accepted.txt";//generates random name 
     file_put_contents($fname, $unis, FILE_APPEND); 

     //$file = fopen($fname, 'a');//creates new file 
     //fwrite($file, $data); 
     //fclose($file); 
     break; 


    } 
    } 
} 
+2

看起來像你在if和else if語句中寫入了相同的條件。 $ _REQUEST中沒有任何特定的數組鍵來區分兩者嗎? –

+0

當您有多個if語句時,它會執行所有這些語句。但是,如果if和else,if條件滿足時,它不會執行其他條件。 –

+0

是啊那裏是形式 – 32113

回答

3

語法是錯誤的

if(condition) { 
    //magic 
} 
else if(other_condiotion) { 
    //other magic 
} 
else { 
//no magic 
} 

或者你可以使用縮短版本:

$var = (condition) ? true : false; 

http://php.net/manual/en/control-structures.elseif.php

編輯: 這是很難理解你的問題,但似乎你想要做的是:

$found = null; 
$founda = null; 
if(isset($_REQUEST["maininput"])){ 
foreach($id as $uni){ 
    if (preg_match("/" . $uni . "/i", $_POST['maininput'])){ 
     $founda = $uni; 
     $data = $uni . "\n"; 
     $fname = "accepted.txt"; 
     $file = fopen($fname, 'a');//creates new file 
     fwrite($file, $data); 
     fclose($file); 
     break; 
     } 

    } 
} 
else { 
    foreach($coures as $mac) { 
    if (preg_match("/" . $mac . "/i", $_POST['maininput'])){ 
     $found = $mac; 
     $data = $mac; 
     $fname = "accepted.txt";//generates random name 
     $file = fopen($fname, 'a');//creates new file 
     fwrite($file, $data); 
     fclose($file); 
     break; 
    } 
    } 
} 

如果你不提供任何額外的第二個條件檢查使用if(condition_match) {} else {//conditon doesn't match}

使用else if時你有兩個或兩個以上的條件來檢查,如:

$number = 3 
if($number == 1) { //false 
//This is number 1 
} 
else if($number == 2) { //false 
//This is number 2 
} 
else { //true 
//This is number 3 
} 

現在很清楚了嗎? 查看該鏈接:http://php.net/manual/en/control-structures.elseif.php

+0

我已編輯代碼請看看 – 32113

+0

兄弟你是說我不能使用其他的,如果在這裏 – 32113

+0

要使用'else if'你必須通過條件,你不要在你的代碼中這樣做。 – PerfectM