PHP弱类型

PHP 是一种弱类型(也称为动态类型)的脚本语言。PHP 比较 2 个值是否相等可以用 “ == ” 或 “ === ”,“ == ” 会在比较时自动转换类型而不改变原来的值,因此这个符号经常出现漏洞。如果遇到了 “===” 则不会进行类型转换
null,0,“0”,array(),字母,进制的比较

- 字母和数字进行弱类型比较时,字母会转换成”null”
- 进制类的字符串在进行弱类型比较时会自动的转换成所对应的数字。
南邮web 起名字矛盾
1 |
|
54975581388转换成十六进制是0xccccccccc
超过精确度的弱类型问题
超过精确度的数字(小数点后超过17位)在进行弱类型比较时,会出 现相等的情况。例如var_dump(0.99999999999999999==1)的结果为 True。
in_array()函数
in_array()函数的基本格式为:in_array($search,Array()),表示搜索 $search是否为数组Array()的元素。in_array()函数实际上存在第三个参 数,该参数默认为false。如果第三个参数设置为true,则判断$search与 数组的值类型是否相同,即进行强类型比较;若第三个参数设置为 false,则in_array()函数进行判断的时候,会强制将$search的值转换为 数组的值类型,此时就是弱类型比较。
1 | bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) |