Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Вызов функции без параметров


Автор: s1lver 14.10.2013, 13:24
Доброго времени суток!

Подскажите пожалуйста, как можно, при одном условии вызвать функцию без параметров, а при другом с параметрами? smile 


Автор: azesmcar 14.10.2013, 13:33
я чего-то не понимаю?
Код

if (condition)
    func(arg1, arg2);
else
    func();

Автор: Gromdron 14.10.2013, 13:43
Либо через if/switch, либо объявив в функции параметры.

К примеру функция умножения: принимает 2 аргумента, первый - число, второй - множитель.

Код

function somefunc($int = 0, $x = 2) {
    If (!empty($int)) {
        return $int*$x;
    } else {
        return false;
    }
}


Таким образом можно ввести так:
Код

$x = somefunc(); // return false
$x2 = somefunc(2);    // return 4
$x3 = somefunc(2, 3);  // return 6


Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Вызов-функции-без-параметров-id525bc6f7ae20155174000000#findElement_E7045_525bcacfae20159f730000e6_0

Автор: s1lver 14.10.2013, 14:04
дело в том, что происходит ошибка "отсутствует аргумент в функции".т.е

к примеру есть код

Код

if(){
    переменная=значение;
    if(){
        test(); //не нужно вызывать с параметрами
    }elseif(){

        test(переменная);//нужно вызывать с параметрами
    }else{
        переменная=значение;
       test2(переменная);
    }
}else{
        else test();//не нужно вызывать с параметрами
    }


при таком раскладе ошибки лезут

вот так нет, но этот вариант не правильный
Код

if(){
    переменная=значение;
    if(){
        test(переменная); //не нужно вызывать с параметрами
    }elseif(){

        test(переменная);//нужно вызывать с параметрами
    }else{
        переменная=значение;
       test2(переменная);
    }
}else{
        else test();//не нужно вызывать с параметрами
    }

Автор: baldina 14.10.2013, 14:29
задай значение по умолчанию (хотя бы null)
Код

function foo ($arg=default_value) {
 // use $arg
}


Автор: DrNemo 19.10.2013, 00:51
еще можно вот так
Код

function td(){
    $arg = func_get_args();
    print_r($arg);
}
td(1);
td(1,2, 'string');
td(array(1));
...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)