function_exists和tp加载语言包

178 阅读1分钟

function_exists判断函数是否存在
实例

//判断__这个方法是否存在,不存在的话,生成这个函数
if (!function_exists('__')) {

    /**
     * 获取语言变量值
     * @param string $name 语言变量名
     * @param array  $vars 动态变量值
     * @param string $lang 语言
     * @return mixed
     */
    function __($name, $vars = [], $lang = '')
    {
    //is_numeric() 函数用于检测变量是否为数字或数字字符串。
        if (is_numeric($name) || !$name) {
            return $name;
        }
        //是否是数组
        if (!is_array($vars)) {
        //func_get_args函数获取函数所有的参数:
            $vars = func_get_args();
         //删除数组中的第一个元素(red),并返回被删除元素的值:
            array_shift($vars);
            $lang = '';
        }
        //加载语言包,返回语言
        return \think\Lang::get($name, $vars, $lang);
    }
}
  /**
     * 加载语言文件
     * @param string $name
     */
    protected function loadlang($name)
    {
    //Request对象controller方法返回驼峰控制器名,如果使用该方法渲染模板的话,请使用Loader::parseName(Request::instance()->controller())转换
        $name = Loader::parseName($name);
        Lang::load(APP_PATH . $this->request->module() . '/lang/' . $this->request->langset() . '/' . str_replace('.', '/', $name) . '.php');
    }