0

我有一个$args数组。我想更改其中的一些值。

编码

foreach( array( $args['key_to_validate'], $args['another_one'] ) as &$arg ) {
    $arg = validate($arg);
}

根据PHP 手册无效并给出语法错误。

所以我必须这样做:

$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 );
}

有没有更优雅的方式?

4

2 回答 2

2
foreach ( array( 'key_to_validate', 'another_one' ) as $key ) {
    validate($args[$key]);
}

确保您的验证函数通过引用获取参数。

于 2013-11-15T00:01:19.727 回答
0

使用 php 5.5,第一个变体就可以了。:^)

于 2013-11-14T23:56:49.267 回答