Использование функции 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 перед выполнением сценария.
Поэтому вы не можете напрямую использовать результат функции в качестве аргумента по умолчанию
Таким образом, единственный способ - это пустой метод аргументов по умолчанию, который вы уже знаете.