我有一个$args
数组。我想改变其中的一些值。
代码
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 );
}
有更优雅的方式吗?
答案 0 :(得分:2)
foreach ( array( 'key_to_validate', 'another_one' ) as $key ) {
validate($args[$key]);
}
确保您的验证函数通过引用获取参数。
答案 1 :(得分:0)
使用php 5.5,第一个变种将起作用。 :^)