функция собственного вызова внутри переменной php - PullRequest
0 голосов
/ 30 октября 2011

Я пытаюсь вернуть значение собственной функции вызова в переменную, которую я буду использовать позже, но получаю следующую ошибку Ошибка разбора: синтаксическая ошибка, неожиданный T_FUNCTION, ожидается ')'

Любая идея, что я делаю не так?Это способ сделать это?Вот код:

$clientText = call_user_func(function(){
    if($lang == 'en'){
    return <<<END
    <p>hello world</p>  
END;
    } else {
             ...
        }
});

спасибо.

update

Только что обнаружил, что моя версия php 5.2.Можно ли сделать что-то подобное?

Ответы [ 2 ]

1 голос
/ 30 октября 2011

Под php 5.2:

Ничто не может помешать вам определить функцию и затем вызвать ее.

    function getClientText($lang){
        if($lang == 'en'){
        return <<<END
        <p>hello world</p>  
    END;
        } else {
                 ...
            }
    }
   $clientText = getClientText($lang);

Или просто сделай это:

  $clientText =   $lang == 'en' ?  '<p>hello world</p>' : $something_else
0 голосов
/ 30 октября 2011

на моем PHP это работает (проверено с 5,4 альфа 2):

$clientText = call_user_func(function($lang)
{

if($lang == 'en')
{
    return <<<END
    <p>hello world</p>  
END;
} else {}

}, 'en');

echo $clientText;

у вас, вероятно, нет php 5.3, но php 5.2

...