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 に答える