如果没有差异,函数将如何表现。通过的参数和没有。在PHP中的函数定义中定义的参数?

时间:2013-01-04 05:55:27

标签: 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。函数定义中存在的参数?请指导我这个问题。提前致谢。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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!

如果您不提供可选参数默认值,那么当您不使用该参数时,您将收到警告。