Функция PHP с необязательными параметрами - PullRequest
94 голосов
/ 20 октября 2010

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

Одна из моих идей заключалась в том, чтобы передать абстрагированную функцию с массивом параметров, который передает ее в реальную функцию.

Есть ли лучший способ настроить функцию, чтобы я мог передавать только те параметры, которые мне нужны?

Ответы [ 12 ]

0 голосов
/ 20 октября 2010

Если вы обычно просто передаете 8-е значение, вы можете изменить порядок своих параметров, чтобы оно было первым. Вам нужно только указать параметры вплоть до последнего, который вы хотите установить.

Если вы используете разные значения, у вас есть 2 варианта.

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

Другой вариант - передать массив, где ключами являются имена параметров. Затем вы можете просто проверить, есть ли значение в массиве с ключом, и если не использовать значение по умолчанию. Но опять же, это может привести к путанице и добавить много дополнительного кода, если у вас много параметров.

0 голосов
/ 20 октября 2010
func( "1", "2", default, default, default, default, default, "eight" );
...