Maison  >  Article  >  développement back-end  >  Exemple d'analyse du jugement de type dans un langage PHP faiblement typé

Exemple d'analyse du jugement de type dans un langage PHP faiblement typé

黄舟
黄舟original
2017-08-10 11:49:201326parcourir

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 &#39;<p>&#39;;
var_dump(1==&#39;1a&#39;);  //true
echo &#39;<p>&#39;;
var_dump(1==&#39;2a&#39;);  //false
echo &#39;<p>&#39;;
var_dump(1==&#39;a1&#39;);  //false
echo &#39;<p>&#39;;
var_dump("1"==&#39;1a&#39;);  //false
echo &#39;<p>&#39;;
var_dump(&#39;51a&#39;+6);  //57
echo &#39;<p>&#39;;
var_dump(&#39;a51&#39;+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 = &#39;&#39;;
$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 vraies

2) 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 = &#39;&#39;;
$c = 0;
$d = "0";
$e = false;
$f = array();
var_dump(empty($a));  //true
echo &#39;<p>&#39;;
var_dump(empty($b));  //true
echo &#39;<p>&#39;;
var_dump(empty($c));  //true
echo &#39;<p>&#39;;
var_dump(empty($d));  //true
echo &#39;<p>&#39;;
var_dump(empty($e));  //true
echo &#39;<p>&#39;;
var_dump(empty($f));  //true
echo &#39;<p>&#39;;
var_dump(isset($a));  //false
echo &#39;<p>&#39;;
var_dump(isset($b));  //true
echo &#39;<p>&#39;;
var_dump(isset($c));  //true
echo &#39;<p>&#39;;
var_dump(isset($d));  //true
echo &#39;<p>&#39;;
var_dump(isset($e));  //true
echo &#39;<p>&#39;;
var_dump(isset($f));  //true
echo &#39;<p>&#39;;
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


par égal.
$sms = "abc";
if(strpos($sms,&#39;a&#39;) != false ){
  echo 1;
}else{
  echo 2;
}

5. Les sauts de ligne nécessitent des guillemets doubles


$sms = "abc";
if(strpos($sms,&#39;a&#39;) !== 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn