Maison  >  Article  >  développement back-end  >  PHP détermine 0 et vide via diverses fonctions

PHP détermine 0 et vide via diverses fonctions

不言
不言original
2018-06-01 11:32:013124parcourir

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));//false

Supplé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

La déclaration php est la suivante :

$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 utilisant

et

 ! 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);

= un signe égal est une affectation

== 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!

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