3

わかりましたので、2 つの必須引数を持つ関数があり、それには多くのオプション引数も必要です。

function example($a,$b, $username, $email) {
    // code
}

オプションの引数のデータは配列から取得されます

$x = array('joeblogs', 'joe@blogs.com');

これらをどのように解析できますか?関数は毎回異なる引数のセットを解析する必要がある場合があることに注意してください。

例として、必要なアクション引数を指定できる CakePHP があります。

4

5 に答える 5

5

このようなもの?

$a = 'a';
$b = 'b';
$x = array('joeblogs', 'joe@blogs.com');

$args = array_merge(array($a, $b), $x);

call_user_func_array('example', $args);

http://php.net/manual/en/function.call-user-func-array.phpを参照してください。

于 2013-05-10T16:22:08.953 に答える
1

オプションの引数には 2 つのアプローチがあります。

最初に、次のようにすべての引数を指定します。

function example($a, $b, $c=null, $d=null, $e=null)

パラメータ$a$bは必須です。その他はオプションでありnull、何も指定されていない場合です。このメソッドでは、オプションの各パラメーターを指定された順序で指定する必要があります。のみを使用してメソッドを呼び出したい場合$a$bおよび$eに null 値を指定する必要が$cあり$dます。

example($a, $b, null, null, $d);

2 番目のメソッドは、3 番目のパラメーターとして配列を受け入れます。この配列のキーがチェックされ、見つかったキーに基づいて処理されます。

function example($a, $b, $c=array()) {

    $optionalParam1 = ( !empty( $c['param1'] ) ) : $c['param1'] ? null;
    $optionalParam2 = ( !empty( $c['param2'] ) ) : $c['param2'] ? null;

このようにして、提供される可能性のある各キーを確認できます。入力されていないキーには、NULL 値が提供されます。

于 2013-05-10T16:25:16.833 に答える
0

以下は、オプションのパラメーターとデフォルト値の構文を示しています

function example($a,$b, $username = '', $email = '') {

}

別の可能性は、「オプションの値の配列」を渡すことです

function example($a,$b, $optional_values = array()) {
    if($optional_values[0] != '') { blah blah .... }
}
于 2013-05-10T16:19:22.527 に答える
0

配列パラメーターを関数に渡すには、 call_user_func_arrayを使用できます。

$args = array( 'foo', 'bar', 'joeblogs', 'joe@blogs.com' );
call_user_func_array( 'example', $args );

または単純に任意の数のパラメーターを渡します。

example( $a, $b, $username, $email );

関数内のパラメーターを取得するには、func_get_argsを使用します。

function example() {
    $args = func_get_args();

    print_r( $args );

    // output:
    //  Array ( 
    //      [0] => foo 
    //      [1] => bar 
    //      [2] => joeblogs 
    //      [3] => joe@blogs.com 
    //  )

}
于 2013-05-10T22:24:59.123 に答える