是否有可能在JText :: _中回显任何变量,如果是这样的话

时间:2012-03-08 09:57:42

标签: php joomla joomla2.5

是否可以在JText

中打印变量

即: - 我需要打印$ email来测试它是否为零或有价值...

$this->setMessage(JText::_('COM_USERS_REGISTRATION_ACTIVATE_SUCCESS'));

3 个答案:

答案 0 :(得分:6)

如果你想在字符串或少数变量的中间使用变量,这里有一个例子:

$this->setMessage(JText::sprintf('COM_USERS_REGISTRATION_ACTIVATE_SUCCESS', $name, $email);

在语言文件中:

COM_USERS_REGISTRATION_ACTIVATE_SUCCESS="Hello %s, your email is: %s"

因此最终输出将显示($ name和$ email将被给定的变量值替换):

Hello $name, your email is: $email

答案 1 :(得分:0)

JText类有一个静态方法'_',它使用适合上下文的语言文件和设置将传递给它的字符串参数转换为另一个字符串。如果你想看看传递给setMessage的内容,你可以尝试:

echo 'DEBUG setMessage argument: "'.JText::_('COM_USERS_REGISTRATION_ACTIVATE_SUCCESS').'"';

如果您发现_显示_什么都没有返回,那么很可能表明在使用的语言文件中没有“COM_USERS_REGISTRATION_ACTIVATE_SUCCESS”条目。

编辑:

如果您需要附加$email,请执行以下操作:

$this->setMessage(JText::_('COM_USERS_REGISTRATION_ACTIVATE_SUCCESS').$email);

答案 2 :(得分:0)

COM_USERS_REGISTRATION_ACTIVATE_SUCCESS正在被消息的语言定义所取代。如果你打破它,Joomla将无法识别它。

如果需要,您可以将变量附加到该消息:

$this->setMessage(JText::_('COM_USERS_REGISTRATION_ACTIVATE_SUCCESS') . $email);

如果需要,甚至可以省略JText

$this->setMessage('some message, email: ' . $email);