У меня есть функция, которая выглядит примерно так:Pass не определен индекс в функции PHP
function name(param1 = default, param2 = default, param3 = default) {...}
Я вызываю функцию, передавая элементы массива в качестве параметров, как это:
name($param['foo'], $param['bar'], $param['hello']);
Мой вопрос: если один (или более) элементов, переданных в вызове функции, не определен, как он обрабатывается внутри самой функции? Я спрашиваю, потому что я пытаюсь вызвать функцию, но у меня нет способа узнать, определены ли какие-либо элементы.
Внутри функции я попытался отладить параметр, пройденный с использованием isset()
, is_null()
и empty()
, и я получил ложные, истинные и истинные значения соответственно. Это заставляет меня думать, что, поскольку что-то действительно передается, значение по умолчанию не задано. Если бы кто-нибудь мог объяснить, как что-то подобное обрабатывается, я был бы признателен.
Хм, если вы передаете значения массива, почему бы просто не передать массив? – bksi
Возможный дубликат [Как передать неопределенные vars функциям без ошибок E \ _NOTICE?] (Http://stackoverflow.com/questions/10130715/how-do-i-pass-undefined-vars-to-functions-without -e-notice-errors) – chris85
@bksi Это совершенно возможно, но я думал, что если я точно знаю, какие элементы массива мне понадобятся, я мог бы просто передать их. – mcon