この記事では、PHP8 の新しい特徴的な解釈と例を紹介します。困っている友人の役に立てば幸いです。
PHP8.0 の新機能の解釈と例
新しい名前付きパラメータ関数
アノテーション機能名前付きパラメータとは何ですか?
は名前付きパラメータです。関数を呼び出すときに、パラメータ名を指定できます。パラメータ名を指定した後、元の関数パラメータをインストールせずに、パラメータの順序を順番に渡すことができます。 :<?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);ログイン後にコピー
アノテーションとは何ですか?コードに直接アクセスし、最後に
コンストラクター プロパティのプロモーション例:
#[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’}ログイン後にコピーアノテーション関数の個人的な理解のまとめ アノテーションを使用すると、分離度が低く、凝集度が高いクラスをメタデータに定義できます。 。利用時にはアノテーションを介して柔軟に導入でき、アノテーションを付けたクラスインスタンスを反映させることで呼び出し目的を達成できます。#**アノテーション付きクラスは、インスタンス化されたときにのみ呼び出されます
Whatということは、クラス属性の修飾子スコープをコンストラクターで宣言できるということです。例:#ユニオン型<?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 ) {} }ログイン後にコピーコードの量が節約され、クラス属性を個別に宣言する必要がありません。
パラメータの型が不明なシナリオでは、これを使用できます。例:function printSomeThing(string|int $value) { var_dump($value); }ログイン後にコピー一致式
はスイッチ キャッシュに似ていますが、厳密な === 一致簡素化された is_null 判定例:<?php$key = 'b';$str = match($key) { 'a' => 'this a', 'c' => 'this c', 0 => 'this 0', 'b' => 'last b',};echo $str;//输出 last bログイン後にコピー##新しい Nullsafe 演算子<?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调用,不报错,返回空ログイン後にコピー
推奨学習: 「PHP ビデオ チュートリアル
」
以上がPHP8の新機能を例を挙げて説明するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。