1. 型変換の問題
intval(); var_dump(intval('1asdfasd')); //1 var_dump(intval('awqw12')); //0 var_dump(intval(array())); //0 var_dump(intval(array('foo','val'))); //1 var_dump(intval(0x1A)); //26 十六进制转换 var_dump(intval('asdfqwer')); //0
intval 変換された値が文字列の場合はエラーは返されませんが、変換された値が空の場合は 2 つの状況があります。配列の場合は 0 が返され、それ以外の場合は 1 が返されます
注: PHP は 32 ビットのメモリを使用して、符号付きの場合は 4294967296 の数値を表現できます。
2. 組み込み関数の緩みの問題switch(); $i='3adcd'; switch($i){ case 1: echo 'i is 1'; break; case 2: echo 'i is 2'; break; case 3: echo 'i is 3'; break; default: echo 'i is default'; break; }
in_array(); $arr = [0,1,2,3,'test']; var_dump(in_array('abd',$arr)); // true var_dump(in_array('1bc',$arr)); // true