php常用数据效验及处理

发布时间 2023-09-01 14:30:00作者: carol2014

经常会用到一些数据验证效验的东西,有些结果是“真是没想到”,总结记录下

浮点数

var_dump((float)'', (float)'dd4.5', (float)'4.5dd', (float) '4.5');

float(0)
float(0)
float(4.5)
float(4.5)

var_dump((float)'5.80', (float)5.800, floatval('5.800'), floatval(5.800));

float(5.8)
float(5.8)
float(5.8)
float(5.8)

var_dump(is_float('dd4.5'), is_float('4.5dd'), is_float('4.5'), is_float(4.5), is_float(4));
bool(false)
bool(false)
bool(false)
bool(true)
bool(false)

  

数值型

var_dump(is_numeric('dd4.5'), is_numeric('4.5dd'), is_numeric('4.5'), is_numeric(4.5), is_numeric(4), is_numeric('')); 

bool(false)
bool(false)
bool(true)
bool(true)
bool(true)
bool(false)

 

布尔型 

var_dump((bool)0, (bool)0.0, (bool)'0', (bool)'0.0', (bool)'0.00', (bool)' ', (bool)'');

bool(false)
bool(false)
bool(false)
bool(true)
bool(true)
bool(true)
bool(false)

  

empty()

var_dump(empty(0), empty(0.0), empty('0'), empty('0.0'), empty('0.00'), empty(' '), empty('')); 

bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
bool(false)
bool(true)

  

explode()

var_dump(explode('*', '1*3'), explode('*', '3*'), explode('*', '3')); 

结果
array(2) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "3"
}
array(2) {
  [0]=>
  string(1) "3"
  [1]=>
  string(0) ""
}
array(1) {
  [0]=>
  string(1) "3"
}

 

==和===      

这里面比较神奇的是偶然发现的 0==‘a’居然为true

var_dump("0" != "a", 0 != "a", "0" !== "a", 0 !== "a");

bool(true)
bool(false)
bool(true)
bool(true)

var_dump(0 == 0.00, 0 === 0.00, 0.0 == '0.0', 0.0 == ' ', 0  == '-0.000', 0.0 === ' ', 0.0 === '0.0');

bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)

 

min和max比较

var_dump(max(1, null),  max(0, null), max(0.0, null),  max(0.01, null), max(-0.01, null));

int(1)
int(0)
float(0)
float(0.01)
float(-0.01)

var_dump(min(1, null),  min(0, null), min(0.0, null),  min(0.01, null), min(-0.01, null));

NULL
int(0)
float(0)
NULL
NULL

 

去掉全角/半角空格

$str = 'sdf dfd  
 s  ss      h中文h';
var_dump(preg_replace(['/\s/', '/[\x{3000}]/u'], '', $str));

string(17) "sdfdfdsssh中文h"