Php 在不使用sprintf的情况下将变量传递到语言文件
我想把一个变量传递给一个语言文件。我已经在Php 在不使用sprintf的情况下将变量传递到语言文件,php,codeigniter,codeigniter-3,Php,Codeigniter,Codeigniter 3,我想把一个变量传递给一个语言文件。我已经在application/core/MY_language.php中创建了MY_language.php class MY_Language extends CI_Lang { public function __construct() { parent::__construct(); } function line($line, $params = null) { $return
application/core/MY_language.php
中创建了MY_language.php
class MY_Language extends CI_Lang
{
public function __construct()
{
parent::__construct();
}
function line($line, $params = null)
{
$return = parent::line($line);
if ($return === false) {
return "!-- $line --!";
} else {
if (!is_null($params)) {
$return = $this->_ni_line($return, $params);
}
return $return;
}
}
private function _ni_line($str, $params)
{
$return = $str;
$params = is_array($params) ? $params : array($params);
$search = array();
$cnt = 0;
foreach ($params as $param) {
$search[$cnt] = '/\\$' . ($cnt + 1) . '/';
$cnt++;
}
$return = preg_replace($search, $params, $return);
return $return;
}
}
此文件必须重写CodeIgniterline()
函数,并接受一组参数作为输入,然后插入到字符串语言中我的语言文本中类型为$
的任何地方
$lang['delete'] = "$name was deleted";
上述代码的结果是:
sam was deleted
由于要将参数添加到
line()
函数,因此无法覆盖该函数
使用不同的名称,如
magic\u line()
您的问题是什么?
in codeigniter 3 the language your core language file must be PREFIX_lang