函数在不同情况下的表现.传递的参数,没有.PHP中函数定义中定义的参数


How the function will behave in case of difference in no. of arguments passed and no. of arguments defined in the function definition in PHP?

我是一个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中有不同的no。函数调用中的参数有不同的no。函数定义中存在的参数?请在这个问题上指导我。提前谢谢你。

如果定义中的参数少于调用中的,多余的参数将被忽略。

如果调用中的参数少于定义中的参数,则缺失的参数将被设置为null并发出警告。

如果参数是可选的,则需要给出默认值。例如:

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!

如果你不给可选参数默认值,那么当你不使用该参数时,你会得到一个警告。