


Analyse approfondie de l'opérateur '? :' en PHP pour comprendre son utilisation !
Cet article vous donnera une analyse approfondie de l'opérateur "? :" (expression ternaire) en PHP pour voir sa fonction, comment l'utiliser et quel est son effet ? J'espère que cela aidera tout le monde ! À quoi ressemblent les opérateurs
?
et :
en
PHP ? ?
和 :
运算符是什么样的?
如下:
(($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER)
它是一个条件运算符。
$x ? $y : $z
表示 “如果 $x 是 true,那么采用 $y;如果不是则采用 $z” 。
它还可以简化。
$x ?: $z
表示 “如果 $x 是 true,那么采用 $x;如果不是则采用 $z” 。
有人会说 ?: 是 “三元运算符” 。这是不对的。 ?: 如果是三元运算符,那么它应该有三个操作数。 之所以这么认为是因为它通常是当前语言唯一的三元运算符。
下面将介绍什么是三元,怎么使用,什么时候使用,为什么使用,以及什么时候不能用。
什么是三元操作符?
? :
是 if
和 else
的缩写。这里 中间有关于 “三元运算符” 的官方说明。
自 PHP 5.3:
从 PHP 5.3 开始,可以省略三元运算符中间部分。表达式 expr1 ?: expr3 ,如果 expr1 是 TRUE,则返回 expr1 ,否则返回 expr3 。
自 PHP 7.0
PHP 7 有新的 Null 合并运算符。这和三元运算一样,也被叫做 “isset 三元元算符” 。这可以从链式三元元算中移除 isset() 。
在 PHP 5 中,如果在一个可能不存在的变量上使用三元运算符,必须要在三元语句的开头使用 isset():
$result = isset($nonExistentVariable) ? $nonExistentVariable : ‘default’;
在 PHP 7 中,可以这样做:
$result = $nonExistentVariable ?? ‘default’;
记住 Null 合并运算符不能处理空字符串。可以链式的使用它来检查多个变量:
$user = $userImpersonatingAnotherUser ?? $loggedInUser ?? “Guest”;
PHP 中,可登录的系统,管理员冒充用户进行测试的情况并不少见。如上,如果用户不冒充另一个用户,且没有登录的话,他将成为一个访客。如果还不理解的话,继续读下去,了解一下三元运算符是什么,是如何使用的,再后过头来看看在新 PHP
怎么使用三元运算符?
正常 if
语句如下:
if (isset($_POST['hello'])) { $var = 'exists'; } else { $var = 'error'; }
使用三元运算符简化。
$var = isset($_POST['hello']) ? 'exists' : 'error'; ^ ^ ^ ^ | | then | else | | | | if post isset $var=this $var=this
更简短,但是难理解。这不仅可以像上面这样用在变量 $var
上,还可以像下面这样在 echo
中使用,来检查变量是不是 false:
$isWinner = false; // 输出 'you lose' echo ($isWinner) ? 'You win!' : 'You lose'; // 同上 return ($isWinner) ? 'You win!' : 'You lose';
为什么要使用他们?
我觉得三元运算是迷人的。一些开发者想要表现,但是三元运算符就 不错,特别是结合其他功能的时候,例如 PHP 5.4 的最新 short echos.
<?php $array = array(0 => 'orange', 1 => 'multicoloured'); ?> <p> <?php foreach ($array as $key => $value) { ?> <span><?=($value==='multicoloured')?'nonsense':'pointless'?></span> <?php } ?> </p> <!-- Outputs: <span> pointless </span> <span> nonsense </span> -->
稍微跑题了,在 'view/template' 中 (注意 MVC 范例),如果要用上一点服务端的逻辑,使用三元运算符或者其他短句将会是最好的方式。“其他短句”,像下面这样:
if ($isWinner) : // Show something cool endif;
注意,我个人不喜欢这样的无意义的短句。
三元运算符有多快?
人们喜欢微优化。也是这样做的。因此清楚三元运算比一般的 if
/ else
语句快多少是很重要的。
从 文章,了解到大约快 0.5ms。这已经快很多了!
等等,不是这样的。这个结论源于反复在一行代码中进行成千上万次的运算。因此完全不用担心,这是没有意义的。
不实用三元运算符
代码应该:
- 易读
- 易理解
- 易修改
显然,这取决于看代码人的编码能力和对此类问题的理解能力。之前的简单示例没有问题,但是下面这样的,是不好的:
echo ($colour === 'red') ? "Omg we're going to die" : ($colour === 'blue' ? "Ah sunshine and daisies" : ($colour === 'green' ? "Trees are green" : "The bloody colour is orange, isn't it? That was pointless."));
原因如下:
- 三元嵌套过长
- 可以使用
switch
- est la suivante :
C'est un opérateur conditionnel. rrreee signifie "si $x est vrai, alors utilisez $y ; sinon, utilisez $z". Cela peut aussi être simplifié.
rrreeesignifie "si $x est vrai, alors utilisez $x ; sinon, utilisez $z". Certains diraient ? : c'est "l'opérateur ternaire". Ce n'est pas correct. ? : S'il s'agit d'un opérateur ternaire, alors il doit avoir trois opérandes. La raison en est qu’il s’agit généralement du seul opérateur ternaire dans les langages actuels. Ce qui suit présente ce qu'est le ternaire, comment l'utiliser, quand l'utiliser, pourquoi l'utiliser et quand ne pas l'utiliser.
Qu'est-ce que l'opérateur ternaire ?
🎜 ? :
est l'abréviation de if
et else
. Il y a une description officielle de « l’opérateur ternaire » au milieu. 🎜🎜🎜Depuis PHP 5.3🎜 :🎜🎜À partir de PHP 5.3, la partie médiane de l'opérateur ternaire peut être omise. L'expression expr1 ? : expr3 renvoie expr1 si expr1 est VRAI et expr3 sinon. 🎜🎜🎜Depuis PHP 7.0🎜🎜
🎜PHP 7 a un nouvel opérateur de coalescence Null. C'est le même que l'opérateur ternaire, également connu sous le nom d'« opérateur ternaire isset ». Cela supprime isset() de l'arithmétique ternaire chaînée. 🎜🎜En PHP 5, si vous utilisez l'opérateur ternaire sur une variable qui n'existe peut-être pas, vous devez utiliser isset() au début de l'instruction ternaire : 🎜rrreee🎜En PHP 7, vous pouvez faire ceci : 🎜rrreee🎜N'oubliez pas que l'opérateur de coalescence Null ne peut pas gérer les chaînes vides. Vous pouvez l'utiliser dans une chaîne pour vérifier plusieurs variables : 🎜rrreee🎜 En PHP, il n'est pas rare que les administrateurs se fassent passer pour des utilisateurs pour tester sur les systèmes de connexion. Comme ci-dessus, si l'utilisateur ne se fait pas passer pour un autre utilisateur et n'est pas connecté, il deviendra un invité. Si vous ne comprenez toujours pas, continuez à lire pour savoir ce qu'est l'opérateur ternaire et comment l'utiliser. Voyons ensuite comment utiliser l'opérateur ternaire dans le nouveau PHP🎜🎜🎜🎜 ? 🎜🎜🎜🎜L'instruction
if
normale est la suivante : 🎜rrreee🎜Utilisez l'opérateur ternaire pour simplifier. 🎜rrreee🎜 Plus court, mais plus difficile à comprendre. Cela peut non seulement être utilisé sur la variable $var
comme ci-dessus, mais peut également être utilisé sur echo
comme ci-dessous pour vérifier si la variable est fausse : 🎜rrreee🎜🎜🎜 Pourquoi vouloir les utiliser ? 🎜🎜🎜🎜Je pense que l'arithmétique ternaire est fascinante. Certains développeurs veulent de la performance, mais l'opérateur ternaire est 🎜 sympa🎜, surtout lorsqu'il est combiné avec d'autres fonctionnalités, comme les derniers échos courts de PHP 5.4.🎜rrreee🎜Un peu hors sujet, dans la 'view /template' (notez le MVC exemple), si vous souhaitez utiliser une logique côté serveur, utiliser l'opérateur ternaire ou d'autres phrases courtes sera le meilleur moyen. "Autres phrases courtes", comme ceci : 🎜rrreee🎜Remarque, personnellement, je n'aime pas les phrases courtes dénuées de sens comme celle-ci. 🎜🎜🎜🎜Quelle est la vitesse de l'opérateur ternaire ? 🎜🎜🎜🎜Les gens adorent la micro-optimisation. Ceci est également fait. Il est donc important de savoir à quel point les opérations ternaires sont plus rapides que les instructions if
/ else
classiques. 🎜🎜De l'article, j'ai appris qu'il est environ 0,5 ms plus rapide. C'est déjà beaucoup plus rapide ! 🎜🎜Attendez, ce n’est pas le cas. Cette conclusion vient de l’exécution répétée de milliers d’opérations sur une seule ligne de code. Alors ne vous inquiétez pas du tout, cela ne sert à rien. 🎜🎜🎜🎜L'opérateur ternaire n'est pas pratique🎜🎜🎜🎜Le code doit :🎜- 🎜Facile à lire🎜🎜Facile à comprendre🎜🎜Facile à modifier🎜🎜🎜Évidemment, cela dépend de la capacité de codage et de la compréhension de ce type de code. Il n'y a pas de problème avec l'exemple simple précédent, mais ce qui suit est 🎜mauvais🎜 : 🎜rrreee🎜La raison est la suivante : 🎜
- 🎜L'imbrication ternaire est trop longue🎜🎜Vous pouvez utiliser le
switch code> déclaration🎜 🎜Le premier doit être orange🎜🎜🎜🎜🎜Résumé🎜🎜🎜🎜L'arithmétique ternaire est en fait très simple, il n'y a pas lieu d'avoir peur. Ne pensez pas qu'il y ait une 🎜une🎜augmentation de vitesse, il n'y a vraiment aucune différence. À utiliser lorsque vous pouvez rendre le résultat 🎜simple🎜, 🎜beau🎜 et garder toujours le code lisible. N'utilisez pas l'opérateur ternaire sans ternaire. 🎜🎜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!

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

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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





PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.
