PHP7の新機能紹介

Utpal Biswas
Utpal Biswas

フォロー

Jan 2, 2019 – 3 min read

PHP コミュニティはこの最新リリースを歓迎し非常に興奮しています。 しかし、それは php がこの時点で停滞していたことを意味するものではありません。 しかし、PHP 7 はまったく新しいリリースで、いくつかのエキサイティングな機能を備えています。

SPEED は PHP 7 がこのリリースでもたらした驚くべき機能です。 開発者は、メモリ消費を減らし、パフォーマンスを向上させるために、PHP コードのリファクタリングに懸命に取り組み、それは確かに成功したのです。 要するに、これは PHP がデータ型を宣言する必要がないことを意味します。 変数にはまだデータ型が関連付けられていますが、整数に文字列を追加するような過激なことをしても、エラーになりません。 型宣言をすることで、期待通りの結果を得るために何が起こるべきかを定義することができます。 また、コードを読みやすくすることもできます。 以下では、いくつかの具体例を見ていきます。

Scalar Type Hints

PHP 7 では、Scalar 型が追加されました。

スカラー型のヒントを追加し、厳密な要件を可能にすることで、より正しく、自己記録的な PHP プログラムが書かれることが期待されます。

non strict

function total(float $a, float $b) {
return $a + $b;
}

output

total(2.8, "3.2");
// string "3.2" changed to float(3.2) no notice
//returns float(6)

output with warning

total(2, "1 week"); 
// int(2) changed to float(2.0) and string "1 week" changed to float(1.0) but you will get a "Notice: A non well formed numeric value encountered"
//returns float(3)

型宣言の不一致が発生した場合、strict mood on で “Fatal Error” がスローされます。 以下はその例です。

declare(strict_types=1);function total(float $a, float $b) {
return $a + $b;
}total(2, "1 week");
// Fatal error: Uncaught TypeError: Argument 2 passed to total() must be of the type float, string giventotal(2.5, 1);
// int(1) change to float(1.0)
//returns float(3.5)

Strict mood “on” を使用すると、警告はエラーになり、コードベースから望ましい出力を得るために非常に有用で構造化された方法であることがわかります。 戻り値の型を指定するには、コロンを追加し、中括弧の直前に型を追加します。

function total(float $a, float $b) : float {}

新しい演算子 :

PHP 7 は、いくつかの新しい演算子を提供します。 最初に紹介するのは spaceship 演算子です。 spacehip 演算子 (複合比較演算子) は、大なり小なり演算子を補完する、すばらしい追加機能です。 like

$compare = 2 <=> 1
2 < 1? return -1
2 = 1? return 0
2 > 1? return 1

Null Coalesce Operator

もうひとつの新しい演算子 Null Coalesce Operator は、事実上伝説の if-set-or と同じです。 これは、左のオペランドが NULL でない場合はそれを返し、そうでない場合は右のオペランドを返します。 この操作は、左から右へ各項目をチェックし、NULLでないものを見つけたらその値を使用します。

$name = $firstName ?? $username ?? $placeholder ?? "Guest";

これは楽しいですよね?

PHP7で遊び始める準備ができているのなら、PHP7で変わった点をすべて投げてみてください。 X

コメントを残す

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