


Eingehende Analyse des „? :'-Operators in PHP, um seine Verwendung zu verstehen!
In diesem Artikel erhalten Sie eine detaillierte Analyse des „?:“-Operators (ternärer Ausdruck) in PHP, um seine Funktion, seine Verwendung und seine Wirkung kennenzulernen. Hoffe, es hilft allen! Wie sehen die Operatoren
?
und :
in
PHP aus? ?
和 :
运算符是什么样的?
如下:
(($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
- lautet wie folgt:
Es ist ein bedingter Operator. rrreee bedeutet „Wenn $x wahr ist, dann verwende $y; wenn nicht, verwende $z“. Es kann auch vereinfacht werden.
rrreeebedeutet „Wenn $x wahr ist, dann verwende $x; wenn nicht, verwende $z“. Manche Leute würden sagen ?: ist der „ternäre Operator“. Das ist nicht richtig. ?: Wenn es sich um einen ternären Operator handelt, sollte er drei Operanden haben. Der Grund dafür ist, dass es sich im Allgemeinen um den einzigen ternären Operator in aktuellen Sprachen handelt. Im Folgenden wird erläutert, was Ternär ist, wie man es verwendet, wann man es verwendet, warum man es verwendet und wann man es nicht verwendet.
🎜? :
ist die Abkürzung von if
und else
. In der Mitte befindet sich eine offizielle Beschreibung des „ternären Operators“. 🎜🎜🎜Seit PHP 5.3🎜:🎜🎜Ab PHP 5.3 kann der mittlere Teil des ternären Operators weggelassen werden. Der Ausdruck expr1 ?: expr3 gibt expr1 zurück, wenn expr1 TRUE ist, andernfalls expr3. 🎜🎜🎜Seit PHP 7.0🎜🎜
🎜PHP 7 verfügt über einen neuen Null-Koaleszenzoperator. Dies ist dasselbe wie der ternäre Operator, auch bekannt als „isset ternärer Operator“. Dadurch wird isset() aus der verketteten ternären Arithmetik entfernt. 🎜🎜Wenn Sie in PHP 5 den ternären Operator für eine Variable verwenden, die möglicherweise nicht existiert, müssen Sie isset() am Anfang der ternären Anweisung verwenden: 🎜rrreee🎜In PHP 7 können Sie Folgendes tun: 🎜rrreee🎜Denken Sie daran, dass der Null-Koaleszenzoperator keine leeren Zeichenfolgen verarbeiten kann. Sie können es in einer Kette verwenden, um mehrere Variablen zu überprüfen: 🎜rrreee🎜In PHP ist es nicht ungewöhnlich, dass Administratoren sich zum Testen auf Anmeldesystemen als Benutzer ausgeben. Wie oben gilt: Wenn der Benutzer sich nicht als ein anderer Benutzer ausgibt und nicht angemeldet ist, wird er zum Gast. Wenn Sie es immer noch nicht verstehen, lesen Sie weiter, um zu erfahren, was der ternäre Operator ist und wie man ihn verwendet. Schauen wir uns dann an, wie man den ternären Operator im neuen PHP🎜🎜🎜🎜 verwendet. 🎜🎜🎜🎜Die normale
if
-Anweisung lautet wie folgt: 🎜rrreee🎜Verwenden Sie zur Vereinfachung den ternären Operator. 🎜rrreee🎜 Kürzer, aber schwerer zu verstehen. Dies kann nicht nur wie oben für die Variable $var
verwendet werden, sondern auch wie unten für echo
, um zu überprüfen, ob die Variable falsch ist: 🎜rrreee🎜🎜🎜 Warum möchten Sie sie verwenden? 🎜🎜🎜🎜Ich finde ternäre Arithmetik faszinierend. Einige Entwickler wollen Leistung, aber der ternäre Operator ist 🎜nett🎜, insbesondere in Kombination mit anderen Funktionen, wie den neuesten kurzen Echos von PHP 5.4.🎜rrreee🎜Ein wenig abseits des Themas, in der „Ansicht/Vorlage“ (beachten Sie die MVC Wenn Sie beispielsweise serverseitige Logik verwenden möchten, ist die Verwendung des ternären Operators oder anderer kurzer Sätze die beste Möglichkeit. „Andere kurze Sätze“, wie dieser: 🎜rrreee🎜Hinweis: Ich persönlich mag bedeutungslose kurze Sätze wie diesen nicht. 🎜🎜🎜🎜Wie schnell ist der ternäre Operator? 🎜🎜🎜🎜Menschen lieben Mikrooptimierung. Dies ist auch erledigt. Daher ist es wichtig zu wissen, wie viel schneller ternäre Operationen sind als normale if
/ else
-Anweisungen. 🎜🎜Aus dem Artikel habe ich gelernt, dass es etwa 0,5 ms schneller ist. Das geht schon viel schneller! 🎜🎜Moment, das ist nicht der Fall. Diese Schlussfolgerung ergibt sich aus der wiederholten Ausführung Tausender Operationen in einer einzigen Codezeile. Machen Sie sich also überhaupt keine Sorgen, es ist sinnlos. Unbrauchbarer ternärer Operator . Problemverständnisfähigkeit. Mit dem vorherigen einfachen Beispiel gibt es kein Problem, aber das Folgende ist 🎜schlecht🎜: 🎜rrreee🎜Der Grund ist wie folgt: 🎜- 🎜Die ternäre Verschachtelung ist zu lang🎜🎜Sie können den
Schalter verwenden Code> Aussage🎜 🎜Der erste sollte orange sein🎜🎜🎜🎜🎜Zusammenfassung🎜🎜🎜🎜Ternäre Arithmetik ist eigentlich sehr einfach, es besteht kein Grund zur Angst. Ich glaube nicht, dass es 🎜irgendeine🎜Geschwindigkeitsverbesserungen gibt, es gibt wirklich keinen Unterschied. Verwenden Sie diese Option, wenn Sie das Ergebnis „einfach“ machen, „gut aussehen“ lassen und den Code stets lesbar halten können. Verwenden Sie den ternären Operator nicht ohne einen ternären Operator. 🎜🎜Empfohlenes Lernen: „🎜PHP-Video-Tutorial🎜“🎜
Das obige ist der detaillierte Inhalt vonEingehende Analyse des „? :'-Operators in PHP, um seine Verwendung zu verstehen!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
