1、php中数字与字符串进行比较,0==‘str’为什么会是true,因为是数字与字符进行比较时候,会先把字符转化为整型,不能转化的,则直接变成0,导致该表达式成立为true
2、对数据类型判断,都有各自的方法,is_array(),is_string,is_integer,is_float等等,好记就用(is_type,type则就是该数据类型)
3、string与bool true时,永远为真,字符串转化为ascii码为真
4、base_convert() 函数在任意进制之间转换数字
5、chr()与ord(),前者把ascii值转化为字符,后者把字符串第一个字符转化为ascii值
6、决不要将未知的分数强制转换为integer,这样有时会导致不可预料的结果
7、类型转换,intval(),strval(),floatval()等等
8、$foo[bar] = 'enemy';echo $foo[bar];这样是错的,但可以正常运行。那么为什么错了呢?原因是此代码中有一个未定义的常量(bar)而不是字符串('bar'-注意引号),而 PHP 可能会在以后定义此常量,不幸的是你的代码中有同样的名字。它能运行,是因为 PHP 自动将裸字符串(没有引号的字符串且不对应于任何已知符号)转换成一个其值为该裸字符串的正常字符串。例如,如果没有常量定义为 bar,PHP 将把它替代为 'bar' 并使用之。
Note: 这并不意味着总是给键名加上引号。用不着给键名为常量或变量的加上引号,否则会使 PHP 不能解析它们。