Maison > Article > développement back-end > Expliquer les nouvelles fonctionnalités de PHP8 avec des exemples
Nouvelle fonction de paramètre nommé
Que sont les paramètres nommés ?Fonction d'annotationC'est un paramètre nommé Lors de l'appel d'une fonction, vous pouvez spécifier le nom du paramètre après avoir spécifié le paramètre. nom, le paramètre La commande peut être passée dans l'ordre sans installer les paramètres de la fonction d'origineExemple :
<?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);
Que sont les annotations ? Allez directement au code, et enfin expliquezPromotion de l'attribut du constructeurExemple :#[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’}Résumé de compréhension personnelle de la fonction d'annotation L'utilisation d'annotations peut définir des classes en classes de métadonnées avec un faible découplage et une cohésion élevée. Il peut être introduit de manière flexible via des annotations lorsqu'il est utilisé, et l'objectif de l'appel peut être atteint en reflétant des instances de classe annotées.
**La classe annotée ne sera appelée que lorsqu'elle sera instanciée
Union TypeQu'est-ce que cela signifie que la portée du modificateur de l'attribut de classe peut être déclarée dans le constructeurExemple ? :<?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 ) {} }
Enregistre la quantité de code, pas besoin de déclarer les attributs de classe séparément.
Can peut être utilisé dans des scénarios où le type de paramètre est incertain. = MatchNouvel opérateur NullsafeExemple :function printSomeThing(string|int $value) { var_dump($value); }
<?php$key = 'b';$str = match($key) { 'a' => 'this a', 'c' => 'this c', 0 => 'this 0', 'b' => 'last b',};echo $str;//输出 last bJugement is_null simplifié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!