0

私はPHPの初心者です。次の関数呼び出しがあります。

UpdateUserTestStatus($user_id, $user_test['test_user_test_id'], $user_test['test_user_start_time'], $user_test_time);

関数の定義は次のとおりです。

function UpdateUserTestStatus($user_id, $test_id, $user_test_start_time, $user_test_time, $test_pack_id) { 
        if($user_id!='' && $test_id!='') {
            $sql  = " UPDATE ".TBL_TESTS_USERS." SET test_user_status='present', ";
            $sql .= " test_user_start_time=".$user_test_start_time.", test_user_time_used=".$user_test_time;
            $sql .= " WHERE test_user_user_id='".$user_id."' AND test_user_test_id=".$test_id;
            $sql .= " AND test_pack_id='".$test_pack_id."' ";

            $this->mDb->Query($sql);

            return true;
        } else
            return false;
    }

だから私の質問は、それは異なる番号を持つPHPで機能しますか?関数呼び出しの引数の数が異なり、番号が異なります。関数定義に存在する引数の数?この号で私を案内してください。前もって感謝します。

4

2 に答える 2

1

定義の引数が呼び出しの引数よりも少ない場合、余分な引数は単純に無視されます。

呼び出しの引数が定義よりも少ない場合、欠落している引数が に設定されnull、警告が発行されます。

于 2013-01-04T05:59:09.523 に答える
0

オプションの場合は、引数にデフォルト値を指定する必要があります。例えば:

function full_name($firstname, $lastname, $middlenames = NULL) {
    $name = $firstname;
    if ($middlenames !== NULL) {
        $name .= ' '.$middlenames;
    }
    $name .= ' '.$lastname;
    return $name;
}
echo full_name('John', 'Doe'); // John Doe
echo full_name('John', 'Doe', 'Smith'); // John Smith Doe
echo full_name('John'); // Warning!

オプションの引数にデフォルト値を指定しない場合、引数を使用しないと警告が表示されます。

于 2013-01-04T06:01:57.153 に答える