У меня есть массив $args
. Я хочу изменить некоторые значения в нем.Foreach по ссылке, только некоторые элементы массива
Код
foreach(array($args['key_to_validate'], $args['another_one']) as &$arg) {
$arg = validate($arg);
}
недействителен согласно PHP Manual и дает ошибку синтаксиса.
Так что я должен делать:
$arguments_to_validate[] =& $args['key_to_validate'];
$arguments_to_validate[] =& $args['another_one'];
foreach ($arguments_to_validate as &$arg) {
$arg = validate($arg);
}
Другой способ:
$argument_keys_to_validate = array('key_to_validate', 'another_one');
foreach ($argument_keys_to_validate as $key) {
$current_arg =& $args[$key];
$current_arg = validate($current_arg);
}
Есть ли более элегантный способ?
Это выглядит как отличный ответ. Я отредактировал свой оригинальный вопрос, чтобы лучше показать, что я не думал о функции проверки, ссылаясь на ссылку, я просто забыл набрать '$ arg =' before' validate ($ arg) ' –
@HeikkiU,' $ args [$ key] = 'добавлено – sectus
Спасибо, но я думаю, что ваше оригинальное решение было еще более элегантным. –