Maison  >  Article  >  développement back-end  >  Que signifient les caractères ?:, ??, isset et vide de PHP ?

Que signifient les caractères ?:, ??, isset et vide de PHP ?

醉折花枝作酒筹
醉折花枝作酒筹avant
2021-07-20 16:29:102101parcourir

Personnellement, je pense que la conception syntaxique en PHP pour juger si une variable existe ou est vide est un échec. La division du travail n'est pas claire et les limites ne sont pas claires. Il est facile de laisser des lacunes dans le jugement. de conception qui semble avoir de nombreuses fonctions mais qui est vague. Cela ne peut pas être attribué au fait que PHP est un langage faiblement typé, mais à un problème de l'implémenteur. Aujourd'hui, je vais vous présenter quelques choses amusantes.

Que signifient les caractères ?:, ??, isset et vide de PHP ?

isset

Détectez si la variable a été définie et non nulle,

isset ( mixed $var , mixed $... = ? ) : bool
  • Si plusieurs paramètres sont transmis en même temps, alors chaque paramètre sera jugé par Isset, de gauche à droite , quelque part au milieu. Si la variable ne passe pas, elle s'arrêtera immédiatement.

  • isset() ne peut être utilisé qu'avec des variables, car la transmission de tout autre paramètre entraînera une erreur d'analyse.

  • Si vous souhaitez détecter si une constante a été définie, vous pouvez utiliser la fonction définie().

  • Si isset() est utilisé pour vérifier les propriétés inaccessibles d'un objet, cette méthode surchargée sera appelée si la méthode __isset() a été définie.

  • Si une variable a été libérée en utilisant unset()], elle ne sera plus isset().

  • Les variables non définies ne signaleront pas les erreurs de syntaxe.

<?php

function tt() {
    
}
$a = null;
$b = 0;
$c = [];
var_dump(isset($a)); // false
var_dump(isset($b)); // true
var_dump(isset($c)); // true
var_dump(isset($c[&#39;name&#39;])); // false
var_dump(isset($d)); // false
var_dump(isset($a, $b, $c, $d)); // false

// var_dump(isset("abc")); // 语法错误
// var_dump(isset(tt())); // 语法错误
// var_dump(isset(MY_CONST)); // 语法错误

Peut être utilisé en toute sécurité pour vérifier les variables d'objets d'objets

// instead of writing
isset($abc) && isset($abc->def) && isset($abc->def->ghi);

// or in a shorter form
isset($abc, $abc->def, $abc->def->ghi);

// you can just write
isset ($abc->def->ghi);

empty()

Juge qu'une variable n'existe pas ou est vide.

empty ( mixed $var ) : bool
  • Les variables non définies ne signaleront pas les erreurs de syntaxe.

  • Les paramètres ne doivent pas nécessairement être des variables.

  • empty() est essentiellement équivalent à !isset($var) || $var == false.

  • Renvoie false lorsque var existe et est une valeur non vide et non nulle, sinon renvoie vrai.

  • Lorsque empty() est utilisé sur une propriété d'objet invisible, la méthode __isset() sera appelée si elle existe.

<?php

function tt() {
    
}
$a = null;
$b = 0;
$c = [];
var_dump(empty($a)); // true
var_dump(empty($b)); // true
var_dump(empty($c)); // true
var_dump(empty($c[&#39;name&#39;])); // true
var_dump(empty($d)); // true
var_dump(empty("abc")); // false
var_dump(empty(tt())); // true
// var_dump(empty(MY_CONST)); // 语法错误

!

Déterminez s'il est vide. Vous pouvez également déterminer si elle existe. Les variables non définies signaleront un avis PHP et ne signaleront pas d'erreur de syntaxe et ne termineront pas le programme.

<?php

function tt() {
    
}
$a = null;
$b = 0;
$c = [];

var_dump(!$a); // true
var_dump(!$b); // true
var_dump(!$c); // true
var_dump(!$c[&#39;name&#39;]); // true  PHP Notice:  Undefined index: name
var_dump(!$d);  // true  PHP Notice:  Undefined index: name
var_dump(!("abc"));  // false
var_dump(!tt());  // true
// var_dump(!MY_CONST); // 语法错误

? : Abréviation de

opérateur ternaire.

$c[&#39;name&#39;] ?: 10 等价于 !$c[&#39;name&#39;] ? 10 : $c[&#39;name&#39;]

Donc la base de son jugement est toujours : juger si elle est vide. Vous pouvez également déterminer si elle existe. Les variables non définies signaleront un avis PHP et ne signaleront pas d'erreur de syntaxe et ne termineront pas le programme.

? est vide, non recommandé Utilisé pour déterminer s'il existe : !, ?:

Apprentissage recommandé : Tutoriel vidéo php

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer