think\Lang::get PHP Method

get() public static method

获取语言定义(不区分大小写)
public static get ( string | null $name = null, array $vars = [], string $range = '' ) : mixed
$name string | null 语言变量
$vars array 变量替换
$range string 语言作用域
return mixed
    public static function get($name = null, $vars = [], $range = '')
    {
        $range = $range ?: self::$range;
        // 空参数返回所有定义
        if (empty($name)) {
            return self::$lang[$range];
        }
        $key = strtolower($name);
        $value = isset(self::$lang[$range][$key]) ? self::$lang[$range][$key] : $name;
        // 变量解析
        if (!empty($vars) && is_array($vars)) {
            /**
             * Notes:
             * 为了检测的方便,数字索引的判断仅仅是参数数组的第一个元素的key为数字0
             * 数字索引采用的是系统的 sprintf 函数替换,用法请参考 sprintf 函数
             */
            if (key($vars) === 0) {
                // 数字索引解析
                array_unshift($vars, $value);
                $value = call_user_func_array('sprintf', $vars);
            } else {
                // 关联索引解析
                $replace = array_keys($vars);
                foreach ($replace as &$v) {
                    $v = "{:{$v}}";
                }
                $value = str_replace($replace, $vars, $value);
            }
        }
        return $value;
    }

Usage Example

Example #1
0
 /**
  * 自动表单验证
  * @access protected
  * @param array $data 创建数据
  * @param string $type 创建类型
  * @return boolean
  */
 public function valid($data, $rule = [])
 {
     $validate = $rule ? $rule : $this->validate;
     // 属性验证
     if ($validate) {
         // 如果设置了数据自动验证则进行数据验证
         if ($this->patchValidate) {
             // 重置验证错误信息
             $this->error = [];
         }
         foreach ($validate as $key => $val) {
             // 验证因子定义格式
             // array(field,rule,message,condition,type,params)
             // 判断是否需要执行验证
             if (0 == strpos($val[2], '{%') && strpos($val[2], '}')) {
                 $val[2] = Lang::get(substr($val[2], 2, -1));
             }
             $val[3] = isset($val[3]) ? $val[3] : 0;
             $val[4] = isset($val[4]) ? $val[4] : 'regex';
             // 判断验证条件
             if (1 == $val[3] || 2 == $val[3] && '' != trim($data[$val[0]]) || 0 == $val[3] && isset($data[$val[0]])) {
                 if (false === $this->_validationField($data, $val)) {
                     return false;
                 }
             }
         }
         // 批量验证的时候最后返回错误
         if (!empty($this->error)) {
             return false;
         }
     }
     return true;
 }
All Usage Examples Of think\Lang::get