Использование функции result в качестве аргумента по умолчанию в функции 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 ...

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

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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам