Neue benannte Parameterfunktion
Was sind benannte Parameter?AnmerkungsfunktionBeim Aufruf einer Funktion können Sie den Parameternamen angeben Name, Parameter Die Reihenfolge kann ohne Installation der ursprünglichen Funktionsparameter übergeben werden.Beispiel:
<?php /** * 计算余额方法 * @param $amount 账户金额 * @param $payment 支出金额 * @return $balance = $amount-$payment 余额 */ function balance($amount, $payment) { return $amount - $payment; } //传统方式调用 balance(100, 20); //php8 使用命名参数调用 balance(amount: 100, payment: 20); //也可以换个顺序,这样来 balance(payment: 20, amount: 100);Nach dem Login kopieren
Was sind Anmerkungen? Gehen Sie direkt zum Code und erklären Sie ihn abschließend.Konstruktorattribut-PromotionBeispiel:#[Attribute]class PrintSomeThing{ public function __construct($str = '') { echo sprintf("打印字符串 %s \n", $str); }}#[PrintSomeThing("hello world")]class AnotherThing{}// 使用反射读取住解$reflectionClass = new ReflectionClass(AnotherThing::class);$attributes = $reflectionClass->getAttributes();foreach($attributes as $attribute) { $attribute->newInstance(); //获取注解实例的时候,会输出 ‘打印字符串 Hello world’}Nach dem Login kopierenPersönliche Zusammenfassung der Annotationsfunktion. Mithilfe von Annotationen können Klassen in Metadatenklassen mit geringer Entkopplung und hoher Kohäsion definiert werden. Es kann bei Verwendung flexibel durch Annotationen eingeführt werden, und der Zweck des Aufrufs kann durch die Reflexion annotierter Klasseninstanzen erreicht werden.
**Die mit Anmerkungen versehene Klasse wird nur aufgerufen, wenn sie instanziiert wird
Union-TypWas bedeutet das? Der Modifikatorbereich des Klassenattributs kann im Konstruktor deklariert werdenBeispiel :<?php // php8之前 class User { protected string $name; protected int $age; public function __construct(string $name, int $age) { $this->name = $name; $this->age = $age; } } //php8写法, class User { public function __construct( protected string $name, protected int $age ) {} }Nach dem Login kopieren
Spart die Menge an Code, Klassenattribute müssen nicht separat deklariert werden.
kann in Szenarien verwendet werden, in denen der Parametertyp unsicher ist.ÜbereinstimmungsausdruckBeispiel:function printSomeThing(string|int $value) { var_dump($value); }Nach dem Login kopieren
ähnelt dem Wechselgeld, ist jedoch streng = = = ÜbereinstimmungNeuer Nullsafe-OperatorBeispiel:<?php$key = 'b';$str = match($key) { 'a' => 'this a', 'c' => 'this c', 0 => 'this 0', 'b' => 'last b',};echo $str;//输出 last bNach dem Login kopieren
PHP-Video-TutorialVereinfachtes is_null-Urteil<?php class User { public function __construct(private string $name) { //啥也不干 } public function getName() { return $this->name; } } //不实例 User 类,设置为null $user = null; echo $user->getName();//php8之前调用,报错 echo $user?->getName();//php8调用,不报错,返回空Nach dem Login kopierenEmpfohlenes Lernen: „
“
Das obige ist der detaillierte Inhalt vonErklären Sie die neuen Funktionen von PHP8 anhand von Beispielen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!