スキップしてメイン コンテンツに移動

PHP7.4の新機能

PHP7.4にバージョンアップされましたので、新機能をまとめて

紹介します。


■新機能

1)型付きプロパティ

 <?php

class User {

    public int $id;

    public string $name;

}

 ?>


2)アロー関数

暗黙的な値スコープを持った関数を定義する簡便な文法を提供します。

<?php

$factor = 10;

$nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]);

?>


3)返り値の型を狭めたり、引数の型を広げたりする 

<?php

class A {}

class B extends A {}


class Producer {

    public function method(): A {}

}

class ChildProducer extends Producer {

    public function method(): B {}

}

?>


4)Null 合体代入演算子 「??」

<?php

$array['key'] ??= computeDefault();

// 上記は、以下にほぼ等しい

if (!isset($array['key'])) {

    $array['key'] = computeDefault();

}

?>


5)配列内での値のアンパック

<?php

$parts = ['apple', 'pear'];

$fruits = ['banana', 'orange', ...$parts, 'watermelon'];

// ['banana', 'orange', 'apple', 'pear', 'watermelon'];

?>


6)数値リテラルのセパレータ

数値リテラルは、桁と桁の間にアンダースコアを挿入できるようになりました。

<?php

6.674_083e-11; // float

299_792_458;   // decimal

0xCAFE_F00D;   // hexadecimal

0b0101_1111;   // binary

?>


7)弱参照

弱い参照により、オブジェクトが破棄されるのを防がないオブジェクトへの参照を保持することが可能です。


8)__toString() から例外をスロー可能に

__toString() から例外をスローできるようになりました。以前は、この場合には致命的なエラーが発生していました。この関数内に既に存在する、回復可能な致命的なエラーは Error 例外クラスに変換されます。


9)CURL

CURLFile は、CURL拡張機能が libcurl 7.56.0 より新しいものでビルドされた場合は、通常のファイル名に加えて、ストリームラッパーをサポートするようになります。


10)Filter

FILTER_VALIDATE_FLOAT フィルタは min_range と max_range オプションをサポートするようになりました。 これは、FILTER_VALIDATE_INT と同じセマンティクスです。


11)FFI

FFI は、ネイティブ関数を呼び出したり、ネイティブな値にアクセスしたり、Cライブラリで定義されたデータ構造を生成/アクセスする簡単な方法を提供する新しい拡張機能です。


12)GD

画像に scatter フィルタを適用するための IMG_FILTER_SCATTER が追加されました。


13)Hash

Castagnoli 多項式を使った crc32c ハッシュが追加されました。 CRC32 バリアントは、 iSCSI, SCTP, Btrfs, ext4 のようなストレージシステムで使われています。


14)マルチバイト文字列

str_split() と同等の機能を提供するものの、バイトではなく、コードポイント単位で動作する mb_str_split() 関数が追加されました。


15)OPcache

コードを事前ロードする機能 がサポートされました。


その他は、正規表現 (Perl互換)、PDO、PDO_OCI、PDO_SQLite、SQLite3などがあります。

コメント

このブログの人気の投稿

XMPPとは

XMPPとは、インスタントメッセージソフトなどに使われるXMLベースのオープンソース・プロトコルである。2004年に、IETF(Internet Engineering Task Force)でIMPP(Instant Messaging and Presence Protocol)の標準案に選ばれた。 Jabber社が開発したインスタントメッセージソフト「Jabber」のプロトコルを、セキュリティ機能などを追加して改良したものである。具体的な機能としては、インスタントメッセージソフトで必要不可欠となるメッセージの送受信や、プレゼンス状態の通知などを受け持っている。 XMPPは柔軟性や拡張性が高いのが特徴であり、JabberやGoogle Talkなどのインスタントメッセージソフトで採用されている。 XMPPを使っているサービスの例はCERN、アメリカの軍事衛星、BBC News、MLB、DuckDuckGoなどがある。また、SlackやHipchatなどのXMPP連携を行うコミュニケーションサービスも数多くある。 時間があれば、ぜひ使ってみたいと思います。