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;
    }
}
此文件必须重写CodeIgniter
line()
函数,并接受一组参数作为输入,然后插入到字符串语言中我的语言文本中类型为
$
的任何地方

$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