数据库 - Model 前置说明
官方开源项目 抓取代理IP

介绍

数据类型判断处理,从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

NULL

格式:\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

提示:标量类型是指那些包含了 intfloatstringbool 的变量。

数字

格式:\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

SW-X

企业级 - 高性能 PHP 框架

最后更新:3年前 . 作者-小黄牛

本篇目录