Я пишу функцию, которая требует некоторых единиц даты, таких как «час», «минута» и «второй», но я хотел бы сделать эту опцию, и текущее время сервера используется по умолчанию.
В mktime(..)
PHP mktime(..)
я замечаю, что они используют вызовы функций для получения значения аргумента по умолчанию – но когда я пытаюсь это сделать, он не работает:
PHP выглядит так: mktime([int $hour = date("H")[,int $minute= date("i")[,etc...
И я попытался скопировать это в свою функцию точно так же (просто не так много аргументов, пока я не function myFunc([int $hour = date("H")[,int $minute= date("i")]]) {
): 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 и хочу изучить лучшие практики.
Аргумент функции по умолчанию должен быть константой времени компиляции. Или в случае PHP значение должно быть известно интерпретатору PHP перед выполнением скрипта.
Поэтому вы не можете напрямую использовать результат функции в качестве аргумента по умолчанию
Таким образом, единственный способ – это нулевой метод аргументов по умолчанию, который вы уже знаете.