Передача переменных в метод PHP - PullRequest
0 голосов
/ 05 октября 2011

У меня есть функция php,

func($c) {

global $a,$b;

//Do something

}

Я называю это так,

$c = "Test";
func($c);

Но в некоторых случаях мне нужно передать дополнительный параметр $ b, и он долженне будет переопределено значением глобальной переменной, поэтому я попробовал это,

func($c,$b = $b,$a = $a) {

//Do something

}

Но в PHP установка переменной по умолчанию не разрешена.Пожалуйста, помогите мне здесь ...

Ответы [ 3 ]

3 голосов
/ 05 октября 2011

То есть вы хотите использовать глобальную переменную в качестве значения по умолчанию для аргумента функции?Вы можете использовать следующий код, предполагая, что null никогда не передается в качестве допустимого аргумента.

function func($c, $b = null, $a = null) {
    if($b === null) $b = $GLOBALS['b'];
    if($a === null) $a = $GLOBALS['b'];
}
2 голосов
/ 05 октября 2011

использовать func_get_args

<?php
function foo()
{
    $numargs = func_num_args();
    echo "Number of arguments: $numargs<br />\n";
    if ($numargs >= 2) {
        echo "Second argument is: " . func_get_arg(1) . "<br />\n";
    }
    $arg_list = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
        echo "Argument $i is: " . $arg_list[$i] . "<br />\n";
    }
}

foo(1, 2, 3);
?>
0 голосов
/ 05 октября 2011

май, который тебе поможет.

<?php

    function doWork($options)
    {
        extract(
            merge_array(
                array(
                    'option_1' => default_value,
                    'option_2' => default_value,
                    'option_3' => default_value,
                    'option_x' => default_value
                ),
                $options
            )
        );

        echo $option_1; // Or do what ever you like with option_1
    }

    $opts = array(
        'option_1' => custom_value,
        'option_3' => another_custom_value
    );
...