プロパティフック PHP なし
11 月には、私たちが愛する PHP のバージョン 8.4 がリリースされます。それに伴い、コミュニティが待ち望んでいた新機能、プロパティ フックが追加されます。 C#、Swift、Kotlin などの他の言語からインスピレーションを得たこの新機能は、魔法の __set() メソッドや __get() メソッドの手間を省きます。
プロパティをプライベートとして作成せずにゲッターとセッターを現在使用し、プロパティとは異なる名前を持つ 2 つの新しいメソッドを作成する方法の例を示します。
class Foo { private String $bar; public function __set($name, $value) { $this->$name = $value . "!!!"; } public function __get($name) { return "!!!" . $this->$name; } }
__get() と __set() を使用すると、値を設定するときと値を検索するときに $bar をパブリックのままにすることができますが、実装は異なり、プロパティとは異なる名前のメソッドを作成する必要はありません。視覚的な例では、使用法は次のようになります:
$foo = new Foo(); $foo->bar = "new release"; // aqui o valor que ficará salvo seria "new release!!!" echo $foo->bar; // aqui retornaria "!!!new release!!!"
次に、__get() と __set() が他のプロパティでどのように見えるか想像してみてください。完全に混乱しています。これを行うもう 1 つの方法は、getBar() メソッドと別の setBar() メソッドを作成することです。ただし、これでは 1 つのプロパティのみが考慮されるため、使用方法は前のものとは異なります。
class Foo { private String $bar; public function setBar($value) { $this->bar = $value . "!!!"; } public function getBar() { return "!!!" . $this->bar; } } $foo = new Foo(); $foo->setBar('new release'); // aqui o valor que ficará salvo seria "new release!!!" echo $foo->getBar(); // aqui retornaria "!!!new release!!!"
個人的には、このユースケースで新しいメソッドを作成するのは少し面倒だと感じています。値の取得と設定の両方にプロパティの直接呼び出しを使用することを好みます。この新機能は、この混乱を解決するために登場し、クラス内の宣言とともに get と set を個別に定義できるようになります。
class Foo { public String $bar { set (String $value) => $this->bar = $value . "!!!"; get => "!!! . $this->bar"; } }
この新しいコードは、同じことを個別に実行します。新しいメソッドを作成したり、クラスが持つ各プロパティの処理が必要な __get() や __set() を使用したりする必要はありません。
あとは、この新機能のリリースを待つだけです。11 月 21 日にリリースされる予定です。
以上がプロパティフック PHP なしの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











LaravelのバックエンドでReactアプリを構築する:パート2、React
