PHP7.4の新機能は何ですか? あなたが知る必要があるトップ10の機能

わずか7日間で、PHP7.4のリリースが表示されます。 新しい更新では、メモリ使用量の削減、および大幅なパフォーマンスの向上が達成されます。 この記事では、PHP7.4の10の主な機能を見てみましょう!PHP7.4

PHP7.4PHP7。4

なぜいくつかのプログラミング言語はとても人気があり、他の言語はプロジェクト開発にほとんど使用されず、忘却に陥る その理由はたくさんあります。 構文、機能、開発ネットワーク、およびコミュニティサポートの単純さは、各テクノロジの需要レベルに影響します。

ITの世界は絶えず発展しているので、コーディング技術は新しい機能、更新、および拡張機能を提供することにより、変化する環境に追いつく必要があ これは、言語の成功の最も重要な要素の一つです。私たちの会社では、私は毎年頻繁に改善が行われているため、PHPを楽しんでおり、今後何年も人気があると信じています。 PHP5が2004年にリリースされて以来、そのパフォーマンスは2倍になり、おそらく3倍にもなりました。 これが、当社のソフトウェア開発会社でPHPを使用する理由の1つです。STACKOVERFLOW Developer Survey2019によると、2年連続でPHPが最も人気のあるプログラミング言語のトップ10に入っているのも不思議ではありません。 今年は、前年より1ランク上の8位を獲得しました。

わずか7日間で、11月28日木曜日に、PHP—PHP7.4の新しいリリースが表示され、これまでで最も機能満載のバージョンの1つになります。 この記事では、PHP7.4の更新された機能の概要を一覧表示し、カバーします。 始めましょう!

矢印関数のサポート

無名関数、またはクロージャは主にJSに適用されるため、PHPでは冗長なようです。 それらの実装と保守手順もより複雑です。

arrow functionsのサポートの導入により、PHP開発者はコードを劇的にクリーンアップし、構文をより簡潔にすることができます。 その結果、より高いレベルのコードの可読性とシンプルさが得られます。 以下の例を見てみましょう。

だから、以前にこのコードを書かなければならなかった場合:

function cube($n){return ($n * $n * $n);}$a = ;$b = array_map('cube', $a);print_r($b);

PHP7.4では、次の方法で書き換えることができます。

$a = ;$b = array_map(fn($n) => $n * $n * $n, $a);print_r($b);

きちんとした短いコードを作成する機能のおかげで、web開発プロセスが速くなり、時間を節約できます。

型付きプロパティのサポート

次のリリースでの型付きプロパティの導入は、おそらく最も重要な更新されたPHP機能の一つと考えられます。 以前は、クラス変数とプロパティ(静的プロパティを含む)の宣言メソッドを使用する可能性はありませんでしたが、プログラマは特定のgetterとsetterメソッ宣言型(voidおよびcallableを除く)のため、null許容型、int、float、array、string、object、iterable、self、bool、およびparentを使用できます。

web開発者がirrelevant nameをstringとして宣言するなど、型から無関係な値を割り当てようとすると、TypeErrorメッセージが表示されます。

矢印関数のように、型付きプロパティはまた、PHPエンジニアが自分のコードを短くし、きれいにすることができます

プリロード

このクールな新機能の主な目的は、PHP7.4のパフォーマンスを向上させることです。 簡単に言えば、プリロードはOPcacheにファイル、フレームワーク、ライブラリをロードするプロセスであり、新しいリリースには間違いなく素晴らしい追加です。 たとえば、フレームワークを使用する場合、要求ごとにファイルをダウンロードして再コンパイルする必要がありました。

OPcacheを構成するときに、これらのコードファイルが要求処理に初めて参加し、毎回変更がないかどうかがチェックされます。 プリロードを使用すると、サーバーは指定されたコードファイルを共有メモリにロードできます。 これは、ファイルの変更のための追加のチェックせずに、後続のすべての要求のために常に利用できるようになることに注意することが重要です。

プリロード中に、PHPは不要なインクルードを排除し、クラスの依存関係やトレイト、インターフェイスなどとのリンクを解決することにも言及すること

共変戻り値&反変パラメータ

現時点では、PHPは主に不変パラメータ型といくつかの制約を提示する不変戻り型を持っています。 共変(型はより具体的なものからより一般的なものに順序付けられています)戻り値と反変(型はより一般的なものからより具体的なものに順序付けされています)パラメータの導入により、PHP開発者はパラメータの型をそのスーパータイプのいずれかに変更することができます。 返された型は、そのサブタイプに簡単に置き換えることができます。

弱参照

PHP7.4では、WeakReferenceクラスを使用すると、web開発者はその破壊を妨げないオブジェクトへのリンクを保存できます。 Weakref拡張のWeakRefクラスと混同しないでください。 この機能により、キャッシュのような構造をより簡単に実装できます。

このクラスの使用例を参照してください。

<?php$obj = new stdClass;$weakref = WeakReference::create($obj);var_dump($weakref->get());unset($obj);var_dump($weakref->get());?>

また、弱参照をシリアル化することはできません。

合体代入演算子

合体演算子は、PHP7.4で利用可能なもう一つの新機能です。 Isset()と一緒に三項演算子を適用する必要があるときに非常に便利です。 これにより、最初のオペランドが存在し、NULLでない場合に最初のオペランドを返すことができます。 そうでない場合は、2番目のオペランドを返すだけです。

ここに例があります:

<?php// Fetches the value of $_GET and returns 'nobody'// if it does not exist.$username = $_GET ?? 'nobody';// This is equivalent to:$username = isset($_GET) ? $_GET : 'nobody';// Coalescing can be chained: this will return the first// defined value out of $_GET, $_POST, and// 'nobody'.$username = $_GET ?? $_POST ?? 'nobody';?>

配列式のスプレッド演算子

PHP7.4では、エンジニアはarray_mergeに比べて高速な配列でスプレッド演算子を使用できます。 その理由には2つの重要な理由があります。 まず、拡散演算子は言語構造であり、array_mergeは関数であると考えられます。 第二の理由は、コンパイル時に定数配列用に最適化できるようになったことです。 その結果、PHP7.4のパフォーマンスが向上します。

配列式の引数のアンパックの例を見てみましょう:また、同じ配列を複数回展開することも可能です。 さらに、通常の要素はspread演算子の前または後に追加できるため、PHP開発者は配列内でその構文を使用できます。

新しいカスタムオブジェクトシリアライズメカニズム

PHPの新しいバージョンでは、__serializeと__unserializeの二つの新しいメソッドが利用可能になりました。 シリアライズ可能なインターフェイスの汎用性と__sleep/__wakeupメソッドを実装するアプローチを組み合わせることで、このシリアライズメカニズムにより、PHP開発者 このPHP機能の詳細については、こちらをご覧ください。

Reflection for references

symfony/var-dumperなどのライブラリは、変数を正確に表示するためにReflectionAPIに大きく依存しています。 以前は、参照リフレクションを適切にサポートしていなかったため、これらのライブラリは参照を検出するためにハックに依存していました。 PHP7.4は、この問題を解決するReflectionReferenceクラスを追加します。

__toString()から例外をスローするためのサポート

以前は、__toStringメソッドから例外をスローする機能はありませんでした。 その理由は、オブジェクトの文字列への変換が標準ライブラリの多くの関数で実行され、それらのすべてが例外を正しく「処理」する準備ができてい このRFCの一部として、コードベース内の文字列変換の包括的な監査が実行され、この制限が削除されました。

最終的な考え

ちょうど一週間で、PHP7.4がリリースされます。 メモリ使用量を削減し、PHP7.4のパフォーマンスを大幅に向上させる多くの新しいPHP機能があります。 このプログラミング言語の以前の制限を回避し、よりクリーンなコードを記述し、webソリューションをより迅速に作成することができます。

コメントを残す

メールアドレスが公開されることはありません。