2013-05-07 4 views
-3

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

function f1() { return rand().'entropy'; } 

      ##### 
       ### 
       # 
function f2($a=f1(), $b=Null) { 
    if($a==Null) $a='default'; 
    return $a.$b; 
} 
+1

... Вы попробовали это, чтобы увидеть? – andrewsi

+0

Да. Он ничего не делает. – Firebowl2000

+0

Даже сообщение об ошибке о неожиданном '('? – andrewsi

ответ

1

. , Вы не можете назначить его непосредственно, но вы можете «подражать» это так же, как вы делаете со строкой «по умолчанию»:

function f1() { return rand().'entropy'; } 

function f2($a = Null, $b=Null) { 
    if ($a == Null) { $a = f1(); } 
    if ($a == Null) { $a = 'default'; } 
    return $a . $b; 
} 

. , Увидев, что f1() всегда возвращает строку, второй код if в моем коде никогда не будет выполнен. Я просто выполнил ваш пример кода, и, насколько я понимаю, это был всего лишь пример того, как вы можете использовать возврат функции в качестве значения по умолчанию, хорошо?

+1

Как правило: ** Значение по умолчанию Значение должно быть постоянным выражением, а не (например) переменной, членом класса или вызовом функции. ** - [Руководство PHP] (http://www.php.net/manual/en/functions.arguments.php) – Lukas

+0

Спасибо за разъяснение Диего. Я угадаю, что PHP не Python;] – Firebowl2000

Смежные вопросы