关于php弱类型
首先认识什么是强、弱类型
维基百科:
强弱类型表示在计算机科学以及程序设计中,经常把编程语言的类型系统分为强类型和弱类型两种。这两个术语并没有非常明确的定义,但主要用以描述编程语言对于混入不同数据类型的值进行运算时的处理方式。
强类型的语言遇到函数引数类型和实际调用类型不匹配的情况经常会直接出错或者编译失败;
而弱类型的语言常常会实行隐式转换,或者产生难以意料的结果。
php就是一类弱类型语言,它会有很多隐式的转换
<?php
2 var_dump("admin"==0); //true
3 var_dump("1admin"==1); //true
4 var_dump("admin1"==1) //false
5 var_dump("admin1"==0) //true
6 var_dump("0e123456"=="0e4456789"); //true
7 ?>
代码分析:
“admin”==0 比较的时候,会将admin转化成数值,强制转化,由于admin是字符串,转化的结果是0自然和0相等;
“1admin”==1 比较的时候会将1admin转化成数值,结果为1;
而“admin1“==1 却等于错误,也就是"admin1"被转化成了0;
“0e123456”=="0e456789"相互比较的时候,会将0e这类字符串识别为科学技术法的数字,0的无论多少次方都是零,所以相等。