PHP 7 のいくつかの新機能
1. ?? 演算子 (NULL 合体演算子)
これは非常に便利だと思うので最初に置きます。使用法:
$a = $_GET['a'] ?? 1;
これは次と同等です:
<?phpif (empty($_GET['a'])) $a = 1;
三項演算子は次のように使用できることがわかっています:
$a ?: 1
しかし、これはベースですon $a が定義済みであることを前提とします。新しい ?? 演算子により判断が簡略化されます。
2. 関数の戻り値の型宣言
公式ドキュメントで提供される例 (辺の長さのパラメーター構文は PHP 5.6 以降でのみ使用可能であることに注意してください):
<?phpfunction arraysSum(array ...$arrays): array{ return array_map(function(array $array): int { return array_sum($array); }, $arrays);}print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));
この例から、関数 (匿名関数を含む) で戻り値の型を指定できるようになったことがわかります。
この宣言の書き方は Swift に似ています。
func sayHello(personName: String) -> String { let greeting = "Hello, " + personName + "!" return greeting}
この機能は、PHP の暗黙的な型変換によって引き起こされるいくつかの問題を回避するのに役立ちます。関数を定義する前に期待される結果について考えると、不要な間違いを避けることができます。
ただし、ここでも注意が必要な機能があります。 PHP 7 では、strict モードを使用する宣言ディレクティブである strict_types が追加されています。
戻り値の型宣言を使用する場合、それが厳密モードで宣言されておらず、戻り値が予期された型でない場合でも、PHP はそれをキャストします。ただし、strict モードの場合は、TypeError の Fatal エラーがトリガーされます。
強制モード:
<?phpfunction foo($a) : int{ return $a;}foo(1.0);
上記のコードは正常に実行でき、foo 関数はエラーなしで int 1 を返します。
厳密モード:
<?phpdeclare(strict_types=1);function foo($a) : int{ return $a;}foo(1.0);# PHP Fatal error: Uncaught TypeError: Return value of foo() must be of the type integer, float returned in test.php:6
宣言後、致命的なエラーがトリガーされます。
js の strict モードに似ていますか?
3. スカラー型宣言
PHP 7 の関数の仮パラメータ型宣言はスカラーにすることができます。 PHP 5 では、クラス名、インターフェイス、配列、または呼び出し可能なもののみにすることができます (PHP 5.4 では、匿名関数を含む関数にすることもできます)。文字列、int、float、bool も使用できるようになりました。
公式の例:
<?php// Coercive modefunction sumOfInts(int ...$ints){ return array_sum($ints);}var_dump(sumOfInts(2, '3', 4.1));
上記の厳密モードの問題がここでも適用されることに注意してください。強制モード (デフォルトでは強制型変換) では、依然としてパラメーターが適用されます。予想される要件を満たさないものは強制的に入力され、厳密モードでは TypeError 致命的エラーがトリガーされます。
4. バッチ宣言を使用する
PHP 7 では、複数のクラス、関数、または const を 1 つの文で宣言できます。
<?phpuse some\namespace\{ClassA, ClassB, ClassC as C};use function some\namespace\{fn_a, fn_b, fn_c};use const some\namespace\{ConstA, ConstB, ConstC};
ただし、次のように記述する必要があります。各クラス、関数、または const の名前 (Python のような * インポートからの方法はありません)。
注意すべき質問は次のとおりです。composer と PSR-4 に基づくフレームワークを使用している場合、この記述方法はクラス ファイルを正常にロードできますか?
5. その他の機能
その他の機能については個別に紹介しませんので、興味のある方は公式ドキュメントをご覧ください:
http://php .net/manual/en/migration70.new-features.php
いくつか簡単に説明します:
PHP 5.3 には匿名関数があり始めましたが、現在は以下の関数があります。匿名クラス;
define は定数配列を定義できるようになりました。
クロージャーは
- を追加しました。
ジェネレーター (より適切にはイテレーター) は最終的な戻り値 (return) を持つことができ、または yield from の新しい構文を通じて別のジェネレーター (ジェネレーター デリゲート) に入ることができます。
ジェネレーターの 2 つの新しい機能 (return と yield from) を組み合わせることができます。特定の外観を自分でテストできます。 PHP 7 は現在 RC5 であり、最終バージョンは間もなく公開される予定です。
最後にちょっとした広告:
5pyJ5oSP57uE5bu65LiA5Liq5LiN5rC055qEUEhQ55qEUVHnvqTvvJozMDU2MTEwODjvvIzmrKLov47liqDlhaXjgII=

ホット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)

ホットトピック









PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。
