Maison >développement back-end >tutoriel php >PHP détermine 0 et vide via diverses fonctions
Cet article présente principalement comment PHP détermine 0 et vide à travers diverses fonctions. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer. 0 Le jugement de
$cast_id = 0; var_dump(strlen($cast_id)); //1 var_dump(empty($cast_id)); // true var_dump(isset($cast_id)); //true var_dump(is_null($cast_id));//false
Le jugement du vide
$cast_id = ""; var_dump(strlen($cast_id)); //0 var_dump(empty($cast_id)); // true var_dump(isset($cast_id)); //true var_dump(is_null($cast_id));//falseSupplément : laissez-moi vous présenter la solution au problème selon lequel 0 n'est pas égal à null dans la syntaxe PHP
I J'ai rencontré un tel problème aujourd'hui. C'est comme ça : dans l'instruction php, je veux juger si une valeur est supérieure ou égale à 0. J'utilise (), et le résultat renvoyé est vide, ce qui est vraiment étrange.
Résumé de l'expérience : $value !=null && $value >=0
$index=0; echo "A: ".$index."<br>"; //0 echo "B: ".($index !=null && $index >=0)."<br>";// echo "C: ".(isset($index) && $index >=0)."<br>";//1 echo "D: ".(0 !=null)."<br>";//Résultat :
Pour déterminer si une valeur [le tableau peut être vide, etc.] est supérieure ou égale à 0, une autre méthode peut être utilisée :
A: 0 B: C: 1 D:
is_numeric($index) === true
$index=array_search($url, $contentOtherStr, true); //值大于等于0, 即存在 if(is_numeric($index) === true) { echo "$url existed. "."<br>"; }else{ echo "$url Add. "."<br>"; array_push($contentOtherStr, $url); }C'est très étrange, enfin résolu. Marque. Résumé : les déclarations de PHP sont un peu bizarres. Les étudiants qui ont été transférés d'autres langages de programmation doivent être plus prudents et faire attention à la pensée inertielle et aux différences grammaticales pour éviter de tomber dans des pièges.
Autres informations :
La raison est que les variables en PHP sont stockées dans des structures en langage C. Les chaînes vides, NULL et false sont toutes basées sur des valeurs 0. stocké, et cette structure a un type zend_uchar ; une telle variable membre est utilisée pour enregistrer le type de la variable, et le type de la chaîne vide est une chaîne, le type de NULL est NULL et false est booléen.
Vous pouvez imprimer ceci en utilisantet
! L'opérateur === compare non seulement les valeurs, mais compare également les types, donc le troisième est faux !echo gettype('');
De plus, en PHP echo gettype(NULL);
== Deux signes égaux sont utilisés pour juger de l'égalité et comparer uniquement les valeurs, pas les types
=== Trois les signes égaux sont utilisés pour juger que les valeurs et les types sont égaux!= Pas de signe égal, comparez uniquement les valeurs, quel que soit le type
!== Signe incongru, comparez les valeurs et les types
donc
Chaîne vide (''), false, NULL et 0 sont égaux en valeur mais différents en type
Remarque :
NULL est un type spécial.NULL dans les deux cas 1. $var = NULL;2. $var ;
3."", 0, "0", NULL, FALSE, array(), var $var; et les objets sans aucun attribut seront considérés comme vides. Si var est vide, renvoie TRUE.
Recommandations associées :
Fonction personnalisée PHP pour implémenter l'affectation de tableau assign() au modèle et l'affectation de variable extract() au modèle
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!