关于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));
strcmp函数
strcmp(str1,str2)str1 规定比较的第一个字符串str2 规定比较的第二个字符串
如果为 0 两个字符串相等,如果为<0 str1小于str2
如果传递的是数组 就为0
switch
switch是数字类型的case的判断时,switch会将参数类型转换为int类型
empty与isset
变量为 0,“0”,null,"",false,array(),使用empty返回的结果都是true
变量未定义或者为null时 isset函数返回的为false,其他的都为true