浅析php中empty与isset区别
empty() 判断一个变量是否为\"空\",isset() 判断一个变量是否已经设置。正是这种所谓的\"顾名思义\",令我开始时走了些弯路:当一个变量值等于0时,empty()也会成立(True),因而会发生一些意外
empty是判断变量值是非空或非零的值。对应空定义包括:""(空字符串)、0、"0"、NULL、FALSE、array()和$var(只声明但未赋值)。也就是说当变量值为上述这些,empty返回TRUE,其他的都返回FALSE。
isset是检测变量是否设置,并且不是 NULL。变量设置可以从几个方面来说。1:最简单的就是变量是否先声明和赋值;2:array中是否存在对应的index或key;3:object中是否存在对应的属性。
从上面的两个function定义可以看到,在某些情况下,两者可以公用,但其区别还是很大的。另外它们都只能检测变量,检测任何非变量的东西都将导致解析错误。例如直接检查另一个function的返回值(empty(otherFunction())),你将看到"Fatal error: Can't use function return value in write context in"这样的错误。
另外isset可以一次检查多个变量,例如:isset($var1, $var2, $var3),当这三个值分别的isset都为TRUE结果为TRUE,否则结果为FALSE。
比如检测 $id 变量,当 $id=0 时,用empty() 和 isset() 来检测变量 $id 是否已经配置,两都将返回不同的值—— empty() 认为没有配置,isset() 能够取得 $id 的值:
代码如下 | 复制代码 |
$id=0; empty($id)?print "It's empty .":print "It's $id ."; //结果:It's empty . print " "; !isset($id)?print "It's empty .":print "It's $id ."; //结果:It's 0 . |
这意味着,我们在使用变量处理函数时,当该变量可能出现0的值,使用 empty() 要小心,这个时候用 isset 取代它更明智一些。
当一个php页面的 URL 尾部参数出现 id=0 时(比如:test.php?id=0),试比较:
代码如下 | 复制代码 |
if(empty($id)) $id=1; - 若 id=0 ,id 也会为1 if(!isset($id)) $id=1; - 若 id=0 ,id 不会为1 |
可分开运行以下代码检测上述推断:
代码如下 | 复制代码 |
if(empty($id)) $id=1; if(!isset($id)) $id=1; 测试代码: $sep = " echo 'test undeclared var empty : '; $var; $var = NULL; $var1 = ''; $var2 = '0'; $var3 = 0; $var4 = FALSE; $var5 = array(); echo $sep . 'test '' empty : '; test undeclared var empty : bool(true) |

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



Huawei déploie la version logicielle 5.0.0.100 (C00M01) pour les montres intelligentes Watch GT 5 et Watch GT 5 Pro dans le monde entier. Ces deux montres intelligentes ont récemment été lancées en Europe, le modèle standard étant le modèle le moins cher de l’entreprise. Cette harmonie

Katsuhiro Harada, le réalisateur de la série Tekken, a un jour sérieusement tenté d'impliquer le colonel Sanders dans le jeu de combat emblématique. Dans une interview avec TheGamer, Harada a révélé qu'il avait présenté l'idée à KFC Japon, dans l'espoir d'ajouter la légende de la restauration rapide comme g

Plus tôt en septembre 2024, le chargeur Zolo 140 W d'Anker a fait l'objet d'une fuite, et c'était un gros problème puisqu'il s'agissait du tout premier chargeur mural doté d'un écran de l'entreprise. Maintenant, une nouvelle vidéo de déballage de Xiao Li TV sur YouTube nous donne un aperçu direct du salut.

Xiaomi lancera prochainement le chauffe-huile Mijia Graphene en Chine. La société a récemment mené avec succès une campagne de financement participatif pour le produit de maison intelligente, hébergé sur sa plateforme Youpin. Selon la page, l'appareil a déjà commencé à être expédié vers

Le lancement du très attendu pliable « Special Edition » de Samsung a pris une autre tournure. Ces dernières semaines, les rumeurs concernant le soi-disant Galaxy Z Fold Special Edition sont devenues plutôt silencieuses. Au lieu de cela, l’accent s’est déplacé vers la série Galaxy S25, y compris

Garmin termine le mois avec une nouvelle série de mises à jour stables pour ses dernières montres intelligentes haut de gamme. Pour récapituler, la société a publié le logiciel système 11.64 pour lutter contre l'épuisement élevé de la batterie des Enduro 3, Fenix E et Fenix 8 (prix actuel : 1 099,99 $ sur Amazon).

Tesla déploie la dernière version 12.5.5 de conduite entièrement autonome (supervisée) et avec elle vient enfin l'option Cybertruck FSD promise, dix mois après la mise en vente du pick-up avec la fonctionnalité incluse dans le prix de finition de la série Foundation. F

Avec une histoire de plus d'une décennie, Manjaro est considérée comme l'une des distributions Linux les plus conviviales, adaptée aussi bien aux débutants qu'aux utilisateurs expérimentés, étant facile à installer et à utiliser. Principalement développée en Autriche, en Allemagne et en France, cette distribution basée sur Arch
