工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 産業技術

PHP 7リリース:主要新機能と知っておくべきポイント総まとめ

開発者であれば、新しいPHP 7の機能完成版ベータがリリース済みであることはご存知でしょう。7.0.0版には多くのクールな機能と機能性が含まれています。しかし、安定版が2015年11月に予定されるまで、本番環境での使用は推奨しません。

最新ベータ版で自由にテスト・検証し、テスト中にバグを発見したら報告してください。PHP 7.0.0で見られるすべての変更・アップグレードを以下にまとめました。

16. これはPHP 7(6ではない)

現在の安定版はPHP 5.6です。多くの開発者は6.0版を期待しています。知られていないのは、PHP 6は過去に実験的プロセスとして存在しましたが、本番フェーズには決して到達しなかったことです。コア開発チームは、次のメジャーリリースでPHP 6という名前をスキップすることを決定しました。

15. 64ビットWindowsサポート

現在のPHPバージョンは64ビット整数や大きなファイルをサポートしていません。PHP 7では一貫した64ビットサポートが導入され、ネイティブな64ビット整数と大きなファイルの両方がサポートされるようになります。

14. 非推奨関数と拡張の削除

PHP 7の主な目標の一つは、メモリを解放して改善を可能にすることでした。そのため、古い未サポートのサーバーAPI、拡張機能、非推奨機能を削除することが必要になりました。
削除されたすべての項目は長い間使用されていません。しかし、古いバージョンでレガシーアプリケーションを実行している場合、PHP 7へのアップグレードはコードを破壊する可能性があります。

参考:開発者向け30のバグ追跡ツール

13. グループuse宣言

このRFCは、グループ宣言の概念を導入することで現在のPHPネームスペース実装を改善するために作成されました。この機能は、通常同じネームスペースから多くのクラスをインポートするコーダーにとって有用です。新しい構文は冗長性を排除し、コードを整理し、大量のタイピング時間を節約します。

12. 匿名クラス

匿名クラスの概念は、JavaやC#などの他のオブジェクト指向プログラミング言語で既に使用されています。これらは名前のないクラスであり、コーディングと実行時間の両方を高速化できます。クラスが実行中に一度だけ使用され、文書化する必要がない場合に使用すべきです。

11. 統一変数構文

統一変数構文は、式が評価される方法の多くの不整合を解決します。例えば、($object->closureProperties)() を使用してプロパティに割り当てられたクロージャを呼び出せること、および静的呼び出しをチェーンできることなどです。

古いバージョンのPHPでは、$obj->$properties['name'] は properties 配列の name キーにある名前のプロパティにアクセスしていました。今では、$properties に存在する名前のプロパティの name キーにアクセスします。

10. Unicodeコードポイントエスケープ構文

新しいエスケープ文字(\u)を使用すると、Unicode文字コードポイント(16進数)を文字列内で明確に指定できます。例えば、絵文字を入力できない場合、そのエスケープシーケンスを代わりに使用できます。

9. 例外処理における共通親クラス

PHPコーダーにとって、致命的エラーと捕捉可能な致命的エラーの処理は決して簡単な作業ではありませんでした。新しいEngine Exceptionsにより、これらの種類のエラーを例外に置き換えることができます。
従来の例外とエンジン例外の両方を捕捉できるようにするため、PHP 7では \BaseException という名前の新しい共通親クラスを導入します。

8. クロージャの呼び出し時バインディング

Closure::bind() と Closure->bindTo() は、$this のバインディングと呼び出しスコープを個別または一緒に変更し、クロージャの複製を作成します。PHP 7では、Closure->call() の追加により、$this と呼び出しスコープの両方を同じオブジェクトにバインドすることで、呼び出し時にこれを簡単に行えるようになりました。このメソッドは最初の引数としてオブジェクトを取り、その後クロージャに渡す任意の引数が続きます。

7. Null合体演算子

合体演算子は「??」で表されます。最初のオペランドが存在しNULLでない場合はその結果を返し、そうでなければ2番目のオペランドを返します。つまり、値が存在しない場合でもE_NOTICEを発生させないため、完全に安全に合体演算子を使用できます。

6. 結合比較演算子

結合比較演算子(別名:宇宙船演算子)は、version_compare() や strcmp() と振る舞いが似ていますが、すべての汎用PHP値で使用できます。RubyとPerlにはすでに存在しています。
演算子は、左オペランドが小さい場合に-1、両方が等しい場合に0、左が大きい場合に1を返します。

5. ジェネレータ返り値式とジェネレータ委譲

ジェネレータ返り値式により、ジェネレータの正常完了時に値を返せるようになります。PHP 7では、$generator->getReturn() を呼び出して返り値を取得できます。ジェネレータがまだ返っていないか、捕捉されない例外をスローした場合、$generator->getReturn() は例外をスローします。ジェネレータが完了したが返り値がなかった場合、NULLが返されます。

ジェネレータ委譲機能により、それ自体が走査可能な別の反復可能構造(イテレータ、配列、または別のジェネレータ)を返せるようになります。部分配造の反復は、再帰的なものではなく、最も外側の元のループによって行われます。

4. 戻り値の型宣言

多くのプログラマーは関数の戻り値の型を宣言したいと考えています。これは、意図しない戻り値やサブタイプがスーパータイプの期待される戻り値の型を破壊するのを防ぐのに役立ち、特にインターフェースで重要です。さらに、PHP 7にはスカラー型の新しい4つの型宣言(string、int、float、bool)が導入されています。これらの新しい型により、コーダーは整数、浮動小数点数、文字列、ブール値が返されることを期待していることを指定できます。
上記の画像では、関数 foo は配列を返すことになっています。複雑な例も確認してください。

3. 抽象構文木

最大かつ最も不可視な変更は、抽象構文木の追加です。これはコンパイル中の中間コード表現です。パーサーから直接オペコードを出力する既存の慣習を置き換えます。これにより、多くのハックを削除でき、実装がより理解しやすく、保守しやすくなります。また、単一パスコンパイルプロセスでは実現不可能だった構文を実装できるようになります。

2. 全く新しいZend Engine

最初のZend Engineは1999年にPHP 4で導入されました。PHPを解釈するオープンソーススクリプトエンジン(Cで書かれています)です。現在のPHPバージョンはZend Engine IIを使用しており、メモリとリソース管理を提供し、拡張可能なオブジェクトモデルと言語への大幅なパフォーマンス向上を追加しています。
PHP 7のために開発中の新しいZend Engine IIIは、元々「phpng」というコードネームでした。

1. パフォーマンス向上とメモリ節約

PHP 7へのアップグレードの最大の理由はそのパフォーマンスです。これは特に小規模ホストにとって朗報で、同じハードウェアでより多くの顧客をホストできるようになります。第7版のパフォーマンスは、実行時ではなく実行前にコンパイルを可能にするJIT(ジャストインタイム)コンパイラを備えたFacebook HHVMと同等です。内部データ構造の最適化により、大幅なメモリ節約もあります。

参考:プログラマーと開発者向け30の驚異的なPHPライブラリ

Zendが公開したグラフを見ると、PHP 5.6でのWordPressリクエストは1億CPU命令未満で実行されるのに対し、PHP 7では同じ仕事をするのにわずか2,500万命令で済みます。さらに、テストでは同じハードウェアで3倍のMagentoトランザクションを実行でき、Drupal 8はPHP 7で72%高速に動作することが示されています。

産業技術

  1. クラウド分析でデジタルサプライチェーン変革を加速
  2. エッジコンピューティング:ローカルデータ処理でスマート生産を変革
  3. エキゾチック溶接(エキソミック溶接)完全解説:プロセス、用途、メリット
  4. 「製造業の何がクール?」動画コンテスト2023年度参加者を発表
  5. 木質構造用パネル完全ガイド:定義・種類・用途・メリット
  6. サンプリングシステムにおける気化のマスター: 実践ガイド
  7. ISO 9001を製造戦略に統合:品質と成長を牽引する
  8. リーン生産成功にアンドンシステムが不可欠な理由
  9. ExporTech:グローバル市場開拓で製造業の成長を加速
  10. 再生産(リマニュファクチャリング)が機械投資戦略を主導し、ピーク性能を実現
  11. 射出成形 vs 3Dプリント:あなたのプロジェクトに最適な製造方法は?