Cet article présente principalement l'opération de jugement de type dans le langage PHP faiblement typé, et analyse les compétences et précautions de conversion, de jugement et d'utilisation des fonctions pour les types de données en PHP sous forme d'exemples. Les amis dans le besoin peuvent s'y référer
.L'exemple de cet article décrit l'opération de jugement de type dans un langage PHP faiblement typé. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
1. Lorsque PHP compare un nombre avec une chaîne ou effectue des opérations, PHP convertit la chaîne en nombre puis compare. Les règles de conversion PHP sont les suivantes : si la chaîne commence par un nombre, le numéro de départ sera utilisé comme résultat de la conversion, sinon, 0 sera affiché.
Par exemple : 123abc devrait être 123 après la conversion, et abc est 0, 0==0. Pour plus de détails, veuillez vous référer au manuel officiel : Si vous comparez un entier. et une chaîne, le caractère La chaîne sera convertie en un entier
$a = ($b=4)+5; echo $a; //9 echo '<p>'; var_dump(1=='1a'); //true echo '<p>'; var_dump(1=='2a'); //false echo '<p>'; var_dump(1=='a1'); //false echo '<p>'; var_dump("1"=='1a'); //false echo '<p>'; var_dump('51a'+6); //57 echo '<p>'; var_dump('a51'+6); //6
2. En PHP, == effectuera d'abord la conversion de type puis comparera , tandis que === comparera d'abord les types. Si les types sont différents, inégal sera renvoyé directement. Reportez-vous à l'exemple suivant
$a = null; $b = ''; $c = 0; echo ($a == $b) ? 1 : 0; // 输出1 echo ($a === $b) ? 1 : 0; // 输出0 echo ($a == $c) ? 1 : 0; // 输出1 echo ($a === $c) ? 1 : 0; // 输出0 echo ($b == $c) ? 1 : 0; // 输出1 echo ($b === $c) ? 1 : 0; // 输出0
<. 🎜>3. Fonctions vides et isset en php
1) Lorsque les variables sont : 0, "0", null, '', false, array(), utilisez la fonction vide, et le les valeurs renvoyées sont toutes vraies2) La variable n'est pas définie Ou lorsqu'elle est nulle, la fonction isset renvoie faux, et les autres ne sont pas vraies Pour juger$a = null; $b = ''; $c = 0; $d = "0"; $e = false; $f = array(); var_dump(empty($a)); //true echo '<p>'; var_dump(empty($b)); //true echo '<p>'; var_dump(empty($c)); //true echo '<p>'; var_dump(empty($d)); //true echo '<p>'; var_dump(empty($e)); //true echo '<p>'; var_dump(empty($f)); //true echo '<p>'; var_dump(isset($a)); //false echo '<p>'; var_dump(isset($b)); //true echo '<p>'; var_dump(isset($c)); //true echo '<p>'; var_dump(isset($d)); //true echo '<p>'; var_dump(isset($e)); //true echo '<p>'; var_dump(isset($f)); //true echo '<p>'; var_dump(isset($g)); //false
dans ce cas, il s'agit évidemment de juger si la chaîne abc contient a. Le résultat attendu devrait être la sortie 1. Le résultat réel La sortie est 2. En effet, lorsque la fonction strpos ne peut pas correspondre à la chaîne cible, elle renvoie false. Lorsqu'elle correspond à la chaîne cible, elle renvoie la chaîne cible. À la position d'index dans la chaîne de recherche, 0 est renvoyé ici. Il est correct de changer
$sms = "abc"; if(strpos($sms,'a') != false ){ echo 1; }else{ echo 2; }
$sms = "abc"; if(strpos($sms,'a') !== false ){ echo 1; }else{ echo 2; }
Si vous l'écrivez comme ceci, le fichier ressemblera à ceci. lorsque vous l'ouvrez 2016-09-02 08:04:04rn2016-09-02 08:04:05rn2016-09-02 08:04:05rn2016-09-02 08:04:05rn2016-09-02 08:04:22 Façon correcte d'écrire C'est rn, mettez-le entre guillemets doubles
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!