<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 前面与文章内容无关的部分</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-comment">### [defined() 和 isset() 函数有什么区别?什么时候该用 defined()?]</span></span><span>
在 PHP 编程中,`</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>()` 和 `</span><span><span class="hljs-keyword">isset</span></span><span>()` 都是用于检查某个值的状态的函数,但它们各自的用途和工作原理有很大的不同。理解这两个函数的区别,能帮助我们在编写 PHP 代码时选择适当的函数来处理变量和常量的检查。下面我们来详细讨论这两个函数的区别以及它们各自的适用场景。
</span><span><span class="hljs-comment">#### 1. `defined()` 函数</span></span><span>
`</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>()` 是一个用来检查常量是否已经定义的函数。常量是在程序中定义一次后不可更改的值,而 `</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>()` 用于判断某个常量是否已经被定义。
**语法:**
```php
</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$name</span></span><span>): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
$ le nom est le nom constant (une chaîne) à vérifier.
Valeur de retour: renvoie true si la constante a été définie; Sinon, renvoyez false .
Exemple:
<span><span><span class="hljs-title function_ invoke__">define</span></span><span>(</span><span><span class="hljs-string">'MY_CONSTANT'</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>(</span><span><span class="hljs-string">'MY_CONSTANT'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'constante MY_CONSTANT Ont été définis。'</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'constante MY_CONSTANT Indéfini。'</span></span><span>;
}
</span></span>
Sortir:
<span><span>constante MY_CONSTANT Ont été définis。
</span></span>
La fonction ISSET () est utilisée pour vérifier si une variable est définie et sa valeur n'est pas nul . Cette fonction est généralement utilisée pour vérifier si une variable existe et a reçu une valeur.
grammaire:
<span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-keyword">mixed</span></span><span> </span><span><span class="hljs-variable">$var</span></span><span>, </span><span><span class="hljs-keyword">mixed</span></span><span> ...</span><span><span class="hljs-variable">$vars</span></span><span>): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
Paramètres: $ var est la variable à vérifier, elle peut être une variable unique ou plusieurs variables.
Valeur de retour: renvoyer true si toutes les variables données sont définies et que leur valeur n'est pas nul , sinon fausse .
Exemple:
<span><span><span class="hljs-variable">$var</span></span><span> = </span><span><span class="hljs-string">'Hello'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$var</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'variable $var Définir et la valeur n'est pas null。'</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'variable $var Pas défini ou comme null。'</span></span><span>;
}
</span></span>
Sortir:
<span><span>variable $</span><span><span class="hljs-keyword">var</span></span><span> Définir et la valeur n'est pas </span><span><span class="hljs-literal">null</span></span><span>。
</span></span>
Objet d'acteur: défini () est uniquement utilisé pour vérifier si une constante est définie, tandis que isset () est utilisée pour vérifier si une variable est définie et non nul .
Scénarios applicables: Defined () est principalement utilisé pour les constantes, tandis que l'ISSet () est utilisé pour les variables (telles que les variables globales, les éléments de tableau, les propriétés d'objet, etc.).
Type de valeur: l'objet vérifié par ISSet () est la valeur d'une variable, et la valeur nul est généralement ignorée; tandis que défini () vérifie si la constante existe.
défini () est principalement utilisé pour vérifier si une constante a été définie. Ceci est particulièrement utile dans les situations suivantes:
Évitez de définir à plusieurs reprises les constantes: si vous ne savez pas si une constante a été définie, vous pouvez utiliser défini () pour éviter l'erreur de définir à plusieurs reprises les constantes.
<span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>(</span><span><span class="hljs-string">'MY_CONSTANT'</span></span><span>)) {
</span><span><span class="hljs-title function_ invoke__">define</span></span><span>(</span><span><span class="hljs-string">'MY_CONSTANT'</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>);
}
</span></span>
Utilisation dans des frameworks: de nombreux frameworks ou bibliothèques PHP utilisent des constantes pour définir des options de configuration. Vous pouvez rencontrer des situations où vous devez vérifier si certaines constantes ont été définies et éviter d'écraser les valeurs de configuration existantes.
Constantes de définition conditionnelle: Parfois, nous définissons différentes constantes en fonction de différents environnements de fonctionnement. Utiliser défini () pour définir les constantes conditionnelles en fonction de différents environnements.
<span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>(</span><span><span class="hljs-string">'ENVIRONMENT'</span></span><span>)) {
</span><span><span class="hljs-title function_ invoke__">define</span></span><span>(</span><span><span class="hljs-string">'ENVIRONMENT'</span></span><span>, </span><span><span class="hljs-string">'production'</span></span><span>);
}
</span></span>
isset () est utilisé pour vérifier si la variable est définie et non nulle . Ceci est utile pour traiter les soumissions de formulaires, les éléments du tableau et les variables globales. Voici quelques scénarios d'utilisation courants:
Vérifiez l'entrée du formulaire: lors du traitement de l'entrée de l'utilisateur, l'utilisation d'ISSet () garantit que le champ de formulaire est défini et non vide.
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'username'</span></span><span>])) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'nom d'utilisateur:'</span></span><span> . </span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'username'</span></span><span>];
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'nom d'utilisateur未提交。'</span></span><span>;
}
</span></span>
Vérifiez les éléments du tableau: utilisez isset () pour vérifier si une clé dans le tableau existe et que sa valeur n'est pas nulle .
<span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-string">'name'</span></span><span> => </span><span><span class="hljs-string">'John'</span></span><span>, </span><span><span class="hljs-string">'age'</span></span><span> => </span><span><span class="hljs-literal">null</span></span><span>];
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>])) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'Nom:'</span></span><span> . </span><span><span class="hljs-variable">$arr</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>];
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'Nom未设置。'</span></span><span>;
}
</span></span>
Vérifier les propriétés de l'objet: ISSet () peut être utilisée pour vérifier si les propriétés de l'objet ont été définies.
<span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">User</span></span><span> {
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-variable">$name</span></span><span>;
}
</span><span><span class="hljs-variable">$user</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">User</span></span><span>();
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$user</span></span><span>->name)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'nom d'utilisateur:'</span></span><span> . </span><span><span class="hljs-variable">$user</span></span><span>->name;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'nom d'utilisateur未设置。'</span></span><span>;
}
</span></span>
définie () est utilisée pour vérifier si une constante est définie et convient à la logique liée à la constante.
isset () est utilisé pour vérifier si la variable est définie et non nul , et convient à la vérification de la variable.
Dans le développement réel, la sélection de la fonction appropriée en fonction des besoins peut améliorer la robustesse et la maintenabilité du code. Si vous devez utiliser défini () lors de la vérification si une constante est définie; Et si vous vérifiez les variables, vous devez utiliser isset () .
<span><span><span class="hljs-comment">// La partie suivante qui n'a rien à voir avec le contenu de l'article</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>