Больше параметра, чем ожидалось: нет ошибки в PHP?

См. Этот код, где я передаю больше параметров, чем ожидалось, в пользовательскую функцию:

error_reporting(E_ALL); ini_set("display_errors", 1); daidai("asassa", "asgfasfas", "asassa"); function daidai($aa) { echo $aa; } 

Это вообще не испускает ошибку, в то время как я ожидал Warning: function daidai() expects at most 1 parameter, 3 given

Меня озадачивает то, что это испускает ошибку, как ожидалось:

 $Odate=new DateTime(); $sfasfasf=$Odate->setTime("23", "59", "30", "unexpected"); 

Зачем?

    Это связано с тем, что setTime() метод setTime() выполняет проверку количества параметров, если вы хотите использовать его в своих функциях, вы должны реализовать его самостоятельно.

    Для справки вы можете ознакомиться с документами для func_num_args() , func_get_arg() и func_get_args()

    Из документов:

    Никакого специального синтаксиса не требуется, чтобы отметить, что функция является переменной; однако доступ к аргументам функции должен использовать func_num_args (), func_get_arg () и func_get_args ().

    Следовательно, php действительно рассматривает каждую функцию как вариационную.