煩請大大們幫我看一下這兩支程式的差別

edited 十月 2013 in 進階PHP討論
程式1
for($k=0;$k<27;$k++){
if(isset($_POST[$k]))//取得所選擇的aa
$aa=$k." ".$aa;
}
程式2
for($j=1;isset($_POST[$j]);$j++){//取得所選擇的aa
$aa=$j." ".$aa;
if($j>26) break;
}

我解釋一下!在我的程式中有26個checkbox,我都是用checkbox[1]~checkbox[26]這樣來命名!
我分別用程式1及程式2去抓值,奇怪的是為什麼程式1可以把值抓出來而程式2就抓不出來呢?
煩煩大大們幫我解答一下!謝謝

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=877

評論

  • edited 九月 2005
    isset($_POST[$j])

    這個函式應該只會傳回 true or false...
  • edited 九月 2005
    KIANG大大!我當然知道isset()這個函數的用法啊!
    不曉得你有沒有看到我的程式及我的問題是怎寫的吧?
    for($k=0;$k<27;$k++){
    if(isset($_POST[$k]))//取得所選擇的aa
    $aa=$k." ".$aa;
    }
    解釋:$k從0開始遞增,當if(isset($_POST[$k]))成立就執行$aa=$k." ".$aa;之後$k++(遞增的意思),最後當$k<27就跳出迴圈而$aa的值就可以得到1~26中哪一些checkbox被選擇的數!
    for($j=1;isset($_POST[$j]);$j++){//取得所選擇的aa
    $aa=$j." ".$aa;
    if($j>26) break;
    }
    解釋:$j從1開始,當isset($_POST[$j])成立,則$aa存放1~26中哪一些checkbox被選擇的數,直到$j>26時才跳出迴圈。
    我的問題是為什麼程式1可以判斷出來從1~26中哪些checkbox被選擇而且 $aa也可以順利的把值存起來,而程式2卻沒半法把值存起來!
    ps~ps~ps~ps~ps~我並不是問isset()這個函數怎麼用。
    謝謝
    我再強調一次!$aa只是用來紀錄哪些checkbox被選擇!而不是存放checkbox的值!
  • edited 九月 2005
    我想是我沒說清楚吧,在第二個程式中,如果第一個項目就不存在,也就是說:

    isset($_POST[1]) == false

    基本上迴圈就中止了,因此這樣子寫會有問題。
  • edited 九月 2005
    我了解了!謝謝
  • edited 九月 2005
    for($j=1;isset($_POST[$j]);$j++){//取得所選擇的aa
    $aa=$j." ".$aa;
    if($j>26) break;
    }
    我想如果把isset($_POST[$j])換成!isset($_POST[$j])這樣應該也就可以把$aa給紀錄下來了!
  • edited 九月 2005
    這樣子就反過來了,變成一旦該項目有數值就會中止迴圈。
Sign In or Register to comment.