Heim  >  Artikel  >  Backend-Entwicklung  >  Beispielanalyse der Typbeurteilung in einer schwach typisierten PHP-Sprache

Beispielanalyse der Typbeurteilung in einer schwach typisierten PHP-Sprache

黄舟
黄舟Original
2017-08-10 11:49:201326Durchsuche

In diesem Artikel wird hauptsächlich die Typbeurteilungsoperation in der schwach typisierten PHP-Sprache vorgestellt und die Konvertierungs-, Beurteilungs- und Funktionsnutzungsfähigkeiten sowie Vorsichtsmaßnahmen für Datentypen in PHP anhand von Beispielen analysiert.

Das Beispiel in diesem Artikel beschreibt die Typbeurteilungsoperation in der schwach typisierten PHP-Sprache. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

1 Wenn PHP eine Zahl mit einer Zeichenfolge vergleicht oder Operationen ausführt, wandelt PHP die Zeichenfolge in eine Zahl um und vergleicht sie dann. Die Regeln der PHP-Konvertierung lauten: Wenn der String mit einer Zahl beginnt, wird die Startnummer als Konvertierungsergebnis verwendet, andernfalls wird 0 ausgegeben.

Zum Beispiel: 123abc sollte nach der Konvertierung 123 sein, und abc ist 0, 0==0. Einzelheiten finden Sie im offiziellen Handbuch: Wenn Sie eine ganze Zahl vergleichen und eine Zeichenfolge, das Zeichen Die Zeichenfolge wird in eine Ganzzahl umgewandelt


$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. In PHP führt == zuerst die Typkonvertierung durch und vergleicht dann , während === zuerst die Typen vergleicht, wird ungleich direkt zurückgegeben


$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. Leere und isset-Funktionen in PHP

1) Wenn die Variablen: 0, „0“, null, '', false, array() sind, verwenden Sie die leere Funktion und die Die zurückgegebenen Werte sind alle wahr

2) Die Variable ist undefiniert. Oder wenn sie null ist, gibt die Isset-Funktion false zurück und die anderen sind nicht wahr


$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

In diesem Fall muss offensichtlich beurteilt werden, ob die ABC-Zeichenfolge a enthält. Das erwartete Ergebnis sollte die Ausgabe 1 sein. Das tatsächliche Ergebnis Die Ausgabe ist 2. Dies liegt daran, dass die Funktion strpos die Zielzeichenfolge zurückgibt, wenn sie nicht mit der Zielzeichenfolge übereinstimmt. An der Indexposition in der Suchzeichenfolge wird hier 0 zurückgegeben. Es ist richtig,


$sms = "abc";
if(strpos($sms,&#39;a&#39;) != false ){
  echo 1;
}else{
  echo 2;
}
in gleich zu ändern.

5. Zeilenumbrüche erfordern doppelte Anführungszeichen

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

Wenn Sie es so schreiben, sieht die Datei so aus wenn Sie es öffnen 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

Richtige Schreibweise Es ist rn, setzen Sie es in doppelte Anführungszeichen

Das obige ist der detaillierte Inhalt vonBeispielanalyse der Typbeurteilung in einer schwach typisierten PHP-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn