1. Typkonvertierungsprobleme
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 Wenn der konvertierte Wert eine Zeichenfolge ist, wird kein Fehler zurückgegeben, aber 0 wird zurückgegeben. Wenn der konvertierte Wert ein Array ist, gibt es zwei Situationen . Wenn es sich um ein leeres Array handelt, wird 0 zurückgegeben, andernfalls wird 1 zurückgegeben. Hinweis: PHP verwendet 32-Bit-Speicher, um eine 32-Bit-Zahl zu speichern. es ist -2147483647 bis 2147483648;
Das Problem der Lockerheit der integrierten Funktionen
Das obige Ergebnis tritt in den Fall 3 ein. Warum ist das so? Numerische Typfallbeurteilung, Schalter wird Die Parameter werden in die Klasse int konvertiert. Wenn Sie also das oben Gesagte ausführen, wird $i zuerst typkonvertiert und das Konvertierungsergebnis ist 3. . .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
Die oben genannten Dinge sind Dinge, auf die wir in unserer täglichen Entwicklung achten müssen.