Использование результата функции в качестве аргумента по умолчанию в функции PHP

Я пишу функцию, которая требует некоторых единиц даты, таких как "час", "минута" и "второй", но я хотел бы сделать эту опцию, и текущее время сервера используется как значение по умолчанию.

В PHP mktime(..) Я замечаю, что они используют вызовы функций для получения значения аргумента по умолчанию - но когда я пытаюсь это сделать, он не работает:

PHP выглядит так: mktime([int $hour = date("H")[,int $minute= date("i")[,etc...

И я попытался скопировать это в свою функцию точно так же (просто не так много аргументов, пока я не получу его работу): function myFunc([int $hour = date("H")[,int $minute= date("i")]]) {

Используя этот код, PHP говорит мне Parse error: syntax error, unexpected '[', expecting '&' or T_VARIABLE in ...

Я пробовал искать это - но не смог найти ничего на эту тему. Мой вопрос: возможно ли это для меня, или мне придется указывать нуль в качестве параметров, а затем проверять их внутри такой функции:

function myFunc($hour=null,etc...) {
  if($hour==null){$hour=date("H");}
  //etc...
}

Что касается обоснования того, почему я хочу знать это, кроме использования решения, которое я предоставил себе, я все еще изучаю PHP и хочу изучить лучшие практики.

Ответ 1

Аргумент функции по умолчанию должен быть константой времени компиляции. Или в случае PHP значение должно быть известно интерпретатору PHP перед выполнением script.

Поэтому вы не можете напрямую использовать результат функции в качестве аргумента по умолчанию

Таким образом, единственный способ - это нулевой метод аргументов по умолчанию, который вы уже знаете.