欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于PHP弱类型的一些案例

程序员文章站 2022-04-30 11:34:52
...

比较字符和数字

var_dump(0 == “admin”) 结果是true 因为0 是数字类型,admin是字符串类型 这里的admin不是数字开头默认为0

var_dump(1 == “1admin”) 结果是true 数字开头把它当做 1 来看待

var_dump( 1 == “admin1”) 结果是false 不是数字开头把他当做0 来看待

var_dump(0 == “admin1”) 结果是true 开头不是数字 把它当做0来看待

XX+e+XX的形式 合法数字+e+合法数字类型的比较

var_dump(“0e123456” == “0e45678”) 返回结果是true

双等于号和三等于号

var_dump(123 == “123”) 结果是true
三个等于号同时比较数据类型
var_dump(123 === “123”) 返回结果是false

MD5()函数

规定要计算的字符串。如果传递数组MD5值不管是什么都会相同

$arr1 = array('test1','test2','2017');
$arr2 = array('test3','test4','2018');

var_dump(md5($arr1) == md5($arr2));

关于PHP弱类型的一些案例

strcmp函数

strcmp(str1,str2)str1 规定比较的第一个字符串str2 规定比较的第二个字符串
如果为 0 两个字符串相等,如果为<0 str1小于str2
关于PHP弱类型的一些案例
如果传递的是数组 就为0
关于PHP弱类型的一些案例

switch

switch是数字类型的case的判断时,switch会将参数类型转换为int类型
关于PHP弱类型的一些案例
关于PHP弱类型的一些案例

empty与isset

变量为 0,“0”,null,"",false,array(),使用empty返回的结果都是true
变量未定义或者为null时 isset函数返回的为false,其他的都为true
关于PHP弱类型的一些案例

相关标签: 代码审计