switch的松比较

. 警惕switch/in_array等的松比较(loose comparision):

switch和in_array都是采用松比较, 所以在要比较的变量之间类型不一样的时候, 很容易出错:

	switch ($name) {
		case "laruence":
			...
			break;
		case "eve":
			...
			break;
	}

对于上面的switch, 如果$name是数字0, 那么它会满足任何一条case. 同理在in_array中也是.

解决的办法就是, 在switch之前, 把变量类型转换成你所期望的类型.

switch (strval($name)) {
	case "laruence":
		...
			break;
	case "eve":
		...
			break;
}

而, in_array提供了第三个可选的参数, 通过这个参数可以改变默认的比较方式.

 

 

 

转自 http://www.laruence.com/2011/03/24/858.html

 

in_array第三个参数type 可选。如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值