Как вывести результат в строковую переменную - что здесь не так? - PullRequest
2 голосов
/ 19 декабря 2010

У меня проблемы с установкой переменной и последующим предоставлением ей результата переведенной строки. Что я делаю не так?

# usage: this translates some text into different language.
echo __('some text'); 

# make a variable and fill it with the outcome of the translated text
$title="echo __('translated content text')";

Первая строка выводит красиво. Вторая строка выводится буквально echo __('translated concent text').

Обновление

Спасибо всем. отличные ответы. Черт возьми, как глупо я должен был быть, поэтому теперь немного мудрее :)

$title = __('Colourful train rides');   # works

сейчас экспериментирует с этими окончаниями
ob_end_flush();
ob_end_clean();

Ответы [ 3 ]

5 голосов
/ 19 декабря 2010

Первая строка выводит красиво

Звучит так, как будто эта функция эхом (также, если ее нет, ее имя будет очень запутанным).необходимо использовать выходной буфер для захвата этого вывода.

ob_start();
__echo('translated concent text');
$title = ob_get_contents();
ob_end_clean(); // Thanks BoltClock
5 голосов
/ 19 декабря 2010

Не включать кавычки вокруг вызова функции и не вызывать echo:

$title = __('translated concent text');
2 голосов
/ 19 декабря 2010

Вы заключаете вызов функции в кавычки, поэтому он выводится буквально (вместо вызова функции).Уберите пару кавычек, и вы получите результат, близкий к тому, что вы хотите:

$title = __echo('translated concent text');

Однако, чтобы это работало, функция __ echo () должна будет вернуть строку, а не просто повторить ее.Если вы хотите перехватить вывод, вам придется использовать PHP Output Buffering .

ob_start();
__echo('translated concent text');
$title = ob_get_contents();
ob_end_clean();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...