数据类型判断处理,从v2.5.21
版本起支持,依赖\x\common\Type
组件。
该组件主要用于对PHP数据类型判断的增强处理,便于同时对某个参数判断多种数据类型。
格式:\x\common\Type::string($param)
use \x\common\Type;
// 示例
var_dump(Type::string(0)); // false
var_dump(Type::string('1')); // true
var_dump(Type::string(true)); // false
格式:\x\common\Type::int($param)
use \x\common\Type;
// 示例
var_dump(Type::int(0)); // true
var_dump(Type::int(1)); // true
var_dump(Type::int(1.2)); // false
var_dump(Type::int('1')); // false
var_dump(Type::int('1.2')); // false
var_dump(Type::int(true)); // false
格式:\x\common\Type::float($param)
use \x\common\Type;
// 示例
var_dump(Type::float(0)); // false
var_dump(Type::float(1)); // false
var_dump(Type::float(1.2)); // true
var_dump(Type::float('1')); // false
var_dump(Type::float('1.2')); // false
var_dump(Type::float(true)); // false
格式:\x\common\Type::bool($param)
use \x\common\Type;
// 示例
var_dump(Type::bool(0)); // false
var_dump(Type::bool(1)); // false
var_dump(Type::bool(true)); // true
var_dump(Type::bool(false)); // true
格式:\x\common\Type::array($param)
use \x\common\Type;
// 示例
var_dump(Type::array(1)); // false
var_dump(Type::array([])); // true
格式:\x\common\Type::null($param)
use \x\common\Type;
// 示例
var_dump(Type::null(1)); // false
var_dump(Type::null(null)); // true
var_dump(Type::null(NULL)); // true
格式:\x\common\Type::class($param)
use \x\common\Type;
// 示例
var_dump(Type::class(1)); // false
var_dump(Type::class(new \x\Db())); // true
格式:\x\common\Type::closure($param)
use \x\common\Type;
// 创建一个闭包
$fun = function (){};
// 示例
var_dump(Type::closure(1)); // false
var_dump(Type::closure($fun)); // true
格式:\x\common\Type::resource($param)
use \x\common\Type;
// 创建一个资源文件
$testFile = __DIR__.'/test.txt';
file_put_contents($testFile, 'test');
$resource = fopen($testFile, 'r');
// 示例
var_dump(Type::resource(1)); // false
var_dump(Type::resource($resource)); // true
格式:\x\common\Type::scalar($param)
use \x\common\Type;
// 示例
var_dump(Type::scalar(0)); // true
var_dump(Type::scalar(1)); // true
var_dump(Type::scalar(1.2)); // true
var_dump(Type::scalar('1.2')); // true
var_dump(Type::scalar(true)); // true
var_dump(Type::scalar(false)); // true
var_dump(Type::scalar([])); // false
var_dump(Type::scalar(null)); // false
var_dump(Type::scalar(NULL)); // false
提示:标量类型是指那些包含了 int
、float
、string
、bool
的变量。
格式:\x\common\Type::numeric($param)
use \x\common\Type;
// 示例
var_dump(Type::numeric(0)); // true
var_dump(Type::numeric(1)); // true
var_dump(Type::numeric(1.2)); // true
var_dump(Type::numeric('1.2')); // true
var_dump(Type::numeric(-1.2)); // true
var_dump(Type::numeric('-1.2')); // true
var_dump(Type::numeric('1a')); // false
var_dump(Type::numeric('-1a')); // false
var_dump(Type::numeric(true)); // false
var_dump(Type::numeric(false)); // false
格式:\x\common\Type::empty($param)
use \x\common\Type;
// 示例
var_dump(Type::empty(0)); // false
var_dump(Type::empty('0')); // false
var_dump(Type::empty(0.0)); // false
var_dump(Type::empty(0.00)); // false
var_dump(Type::empty('0.00')); // false
var_dump(Type::empty(1)); // false
var_dump(Type::empty([])); // true
var_dump(Type::empty('')); // true
var_dump(Type::empty(false)); // true
var_dump(Type::empty(null)); // true
var_dump(Type::empty(null)); // true
提示:在PHP中empty()
函数会对0
判断为真,但在实际开发中,数据经常会传递0
,从而影响业务流程。
格式:\x\common\Type::all($param, $type_list)
use \x\common\Type;
// 示例
var_dump(Type::all(1, ['string', 'int'])); // true
var_dump(Type::all(true, ['string', 'int'])); // false
提示:当只要有其中一个类型判断通过时,直接返回true
。