Heim  >  Artikel  >  Backend-Entwicklung  >  Zwei neue Operatoren zu PHP7 hinzugefügt: „?->' und „??'

Zwei neue Operatoren zu PHP7 hinzugefügt: „?->' und „??'

PHPz
PHPzOriginal
2023-03-21 15:49:521724Durchsuche

Nach der Veröffentlichung von PHP7 stellte jeder fest, dass eine wichtige Änderung darin bestand, dass die starke Typprüfung verbessert wurde. Diese Änderung ist sehr vorteilhaft, da sie uns hilft, viele Fehler zu vermeiden, wie z. B. das Referenzieren einer Variablen, bevor diese definiert wurde.

Wenn wir in früheren PHP-Versionen eine Variable nicht definiert hatten, führte die direkte Verwendung zu einem Fehler Undefinierte Variable. In PHP7 können wir jedoch einige neue Funktionen verwenden, um dieses Problem zu vermeiden. Undefined variable的错误。但是,在PHP7中,我们可以使用一些新功能来避免这个问题的发生。

这些新功能包括两个新的操作符,即:?->??。它们可以分别解决两种不同类型的问题。

?->操作符

在之前的PHP版本中,我们可以通过使用isset函数来判断一个变量是否已定义。但是,这只适用于单个变量的情况。如果我们需要检查一个对象的属性是否已定义,那么就需要使用一些复杂的代码来完成这个任务。

在PHP7中,我们可以使用?->操作符来检查一个对象的属性是否已定义。这个操作符只在属性的接收者是null、false或未定义的变量时返回null,否则返回属性的值。通过这种方法,我们可以避免在属性没有被定义之前使用它,从而避免Undefined variable的错误。

<?php
$obj = null;
$value = $obj?->property;
?>

在上面的代码中,如果$obj是null,那么$value将被设置为null,否则$value将被设置为$obj的property属性的值。

??操作符

另外一个非常有用的新功能是??操作符。这个操作符可以用来检查一个变量是否已定义,并且如果没有定义就设置一个默认值。

在之前的PHP版本中,我们通常会使用三元操作符来完成这个任务:

<?php
$variable = isset($variable) ? $variable : &#39;default value&#39;;
?>

在PHP7中,我们可以使用??操作符来代替上面的代码。如果$variable已经定义,那么$variable将被赋值给$result,否则$result将被赋值为默认值。

<?php
$variable = null;
$result = $variable ?? "default value";
?>

在上面的代码中,$result将被设置为"default value",因为$variable是null。

总结

这两个新操作符可以非常有效地避免Undefined variable

Zu diesen neuen Funktionen gehören zwei neue Operatoren, nämlich: ?-> und ??. Sie können jeweils zwei verschiedene Arten von Problemen lösen. 🎜🎜?->Operator🎜🎜In früheren PHP-Versionen konnten wir mithilfe der Funktion isset feststellen, ob eine Variable definiert wurde. Dies funktioniert jedoch nur für eine einzelne Variable. Wenn wir überprüfen müssen, ob die Eigenschaften eines Objekts definiert sind, müssen wir für diese Aufgabe einen komplexen Code verwenden. 🎜🎜In PHP7 können wir den Operator ?-> verwenden, um zu überprüfen, ob die Eigenschaften eines Objekts definiert wurden. Dieser Operator gibt nur null zurück, wenn der Empfänger der Eigenschaft null, falsch oder eine undefinierte Variable ist, andernfalls gibt er den Wert der Eigenschaft zurück. Auf diese Weise können wir vermeiden, die Eigenschaft zu verwenden, bevor sie definiert ist, und so Fehler durch undefinierte Variablen vermeiden. 🎜rrreee🎜Wenn im obigen Code $obj null ist, wird $value auf null gesetzt, andernfalls wird $value auf den Wert des Eigenschaftsattributs von $obj gesetzt. 🎜🎜??-Operator🎜🎜Eine weitere sehr nützliche neue Funktion ist der ??-Operator. Mit diesem Operator kann überprüft werden, ob eine Variable definiert ist, und andernfalls einen Standardwert festlegen. 🎜🎜In früheren PHP-Versionen haben wir normalerweise den ternären Operator verwendet, um diese Aufgabe zu erfüllen: 🎜rrreee🎜In PHP7 können wir den ??-Operator verwenden, um den obigen Code zu ersetzen. Wenn $variable definiert ist, wird $variable $result zugewiesen, andernfalls wird $result der Standardwert zugewiesen. 🎜rrreee🎜Im obigen Code wird $result auf „Standardwert“ gesetzt, da $variable null ist. 🎜🎜Zusammenfassung🎜🎜Diese beiden neuen Operatoren können Undefinierte Variable-Fehler sehr effektiv vermeiden und unseren Code klarer und einfacher zu warten machen. Wenn wir sie verwenden, müssen wir nur auf ihre Verwendung und Einschränkungen achten. 🎜

Das obige ist der detaillierte Inhalt vonZwei neue Operatoren zu PHP7 hinzugefügt: „?->' und „??'. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn