Как вы создаете необязательные аргументы в php?

В руководстве по PHP, чтобы показать синтаксис 9X_php-frameworks функций с необязательными параметрами, они 9X_php-include заключают в скобки каждый набор зависимых 9X_php-cli необязательных параметров. Например, для 9X_php функции date() инструкция гласит:

string date ( string $format [, int $timestamp = time() ] ) 

Где $timestamp — необязательный 9X_php-session параметр, и если оставить его пустым, по 9X_php умолчанию используется возвращаемое значение 9X_php5 функции time().

Как вы создаете подобные необязательные 9X_php-namespaces параметры при определении пользовательской 9X_php-namespaces функции в PHP?

205
0
7
Общее количество ответов: 7

Ответ #1

Ответ на вопрос: Как вы создаете необязательные аргументы в php?

Как и в руководстве, используйте знак равенства 9X_php-mail (=) в определении параметров:

function dosomething($var1, $var2, $var3 = 'somevalue'){ // Rest of function here... } 

275
1

  • `function dosomething ($ var1, $ va ...

Ответ #2

Ответ на вопрос: Как вы создаете необязательные аргументы в php?

Значение аргумента по умолчанию должно быть 9X_php-session константным выражением. Это не может быть 9X_php-cli переменная или вызов функции.

Однако, если 9X_phtml вам нужна эта функция:

function foo($foo, $bar = false) { if(!$bar) { $bar = $foo; } } 

Предполагая, что $bar, конечно, не 9X_php-cgi должно быть логическим значением.

54
3

  • однако это будет оценивать, было ли передано 0 или «ложь ...

Ответ #3

Ответ на вопрос: Как вы создаете необязательные аргументы в php?

Некоторые заметки, которые я также нашел 9X_php-cgi полезными:

  • Сохраняйте значения по умолчанию 9X_php-date справа.

    function whatever($var1, $var2, $var3="constant", $var4="another") 
  • Значение аргумента по умолчанию должно 9X_php-include быть константным выражением. Это не может 9X_php-cgi быть переменная или вызов функции.

23
0

Ответ #4

Ответ на вопрос: Как вы создаете необязательные аргументы в php?

Присвойте необязательному аргументу значение 9X_php-errors по умолчанию.

function date ($format, $timestamp='') { } 

15
0

Ответ #5

Ответ на вопрос: Как вы создаете необязательные аргументы в php?

Функция даты может быть определена примерно 9X_php-mail так:

function date($format, $timestamp = null) { if ($timestamp === null) { $timestamp = time(); } // Format the timestamp according to $format } 

Обычно вы устанавливаете значение по 9X_php-cgi умолчанию следующим образом:

function foo($required, $optional = 42) { // This function can be passed one or more arguments } 

Однако только 9X_php-oop литералы являются допустимыми аргументами по умолчанию, поэтому 9X_php-cli я использовал null в качестве аргумента по умолчанию 9X_php-frameworks в первом примере, не $timestamp = time(), и объединил его. с 9X_phtml нулевой проверкой. Литералы включают массивы 9X_php5 (array() или []), логические значения, числа, строки 9X_php и null.

15
0

Ответ #6

Ответ на вопрос: Как вы создаете необязательные аргументы в php?

Если вы не знаете, сколько атрибутов необходимо 9X_php-session обработать, вы можете использовать токен 9X_phtml списка аргументов с переменным числом аргументов 9X_php-cgi (...), представленный в PHP 5.6 (see full documentation here).

Синтаксис:

function ([ ]...<$paramName>) {} 

Например:

function someVariadricFunc(...$arguments) { foreach ($arguments as $arg) { // do some stuff with $arg... } } someVariadricFunc(); // an empty array going to be passed someVariadricFunc('apple'); // provides a one-element array someVariadricFunc('apple', 'pear', 'orange', 'banana'); 

Как 9X_php-oop видите, этот токен в основном превращает 9X_php-include все параметры в массив, который вы можете 9X_php-readfile обрабатывать любым способом.

12
0

Ответ #7

Ответ на вопрос: Как вы создаете необязательные аргументы в php?

Начиная с версии 7.1 существует подсказка 9X_phtml типа для параметров, допускающих значение 9X_php-frameworks NULL

function func(?Object $object) {} 

Это будет работать в следующих случаях:

func(null); //as nullable parameter func(new Object()); // as parameter of declared type 

Но 9X_php для необязательного значения подпись должна 9X_php-fpm выглядеть так.

function func(Object $object = null) {} // In case of objects function func(?Object $object = null) {} // or the same with nullable parameter function func(string $object = '') {} // In case of scalar type - string, with string value as default value function func(string $object = null) {} // In case of scalar type - string, with null as default value function func(?string $object = '') {} // or the same with nullable parameter function func(int $object = 0) {} // In case of scalar type - integer, with integer value as default value function func(int $object = null) {} // In case of scalar type - integer, with null as default value function func(?int $object = 0) {} // or the same with nullable parameter 

чем его можно вызвать как

func(); // as optional parameter func(null); // as nullable parameter func(new Object()); // as parameter of declared type 

5
0