int类型?
111,2=>22111,3=>3333);
$y1=in_array(111,$x1);
echo $y1;
echo \r\n;
$x2=array(1=>111,2=>2211,3=>3333);
$y2=in_array('111',$x2);
echo $y2;
echo \r\n;
$x3=array(1=>111,2=>2211,3=>3333);
$y3=in_array(111,$x3);
echo $y3;
echo \r\n;
?>
问题:
上面php程序,函数第1个参数是:int类型,它可以用以下3种方式表示:
1)111
2)'111'
3)111
这样都对,为什么?
分享到: 22111,3=>3333);?$y1=in_array(111,$x1);?echo?$y1;... data-pics=>
------解决方案--------------------
引用:quote: 引用:
因为你没有给in_array指定第三个参数,因此只比较值是否相等。而 111 ,'111' ,111 三个的值是相等的。
先不用考虑第3个参数。
php语法,int类型,可以用这三种方式表示?
php 是弱类型语言,会根据上下文自动变换数据类型
如
echo '111' + 2; //输出 113
echo 111 . 2; //输出 1112
对于 #8,当取消强制类型检查时
error_reporting(e_all ^ e_notice);
$x1=array(1=>a,2=>b,3=>c);
$y1=in_array(a,$x1);
并不会报错!