PHP開発に携わって半年の初心者です。
初めての言語がPHP7でしたが、先日よりPHP5系を触らせていただくことがありました。
バージョン違いを簡単に考えていましたが、プログラムソースを読むことさえ、想像以上に苦戦してしまったので、ここで、PHPのバージョンについて、特にPHP7のメリットについてなど、記述していきたいと思います。
PHP7とは
PHP7は現在の最新のPHPのバージョンとなります。(現在の最新バージョンはVersion7.2.12)
PHPでは長らく5系が使用されてきましたが、10年ぶりのメジャーバージョンアップとして、PHP7系がリリースされました。
公式サイトには、「PHP7のバージョンアップでは過去のバージョンからの移行をできるだけスムーズに行えるように心がけており、PHP7のリリースで主に注力したのは、これまでのバージョンで非推奨となっているもの、廃止予定とされていた機能の削除や、言語としての一貫性の向上です」と記載されています。
ちなみに、PHP6については、予定されていた内容がPHP5のマイナーバージョンアップによって対応されたことで、6系のバージョンアップは不要となった経緯が通説となっています。
というのも、これまでの5系のマイナーバージョン間で大きな変更が何度か加えられており、たとえば5.1系と5.3系にも大きく違いがあります。さらに5系の最新バージョンである5.6系にも大きな変更が加わっています。
PHP7メリット
先程紹介した公式サイトでの言葉にあるように、PHP7のバージョンアップでは互換性に関して非常に気を配っており、バージョンの移行をできるだけスムーズに行えるように心がけていることにあると思います。
つまり、すでに使用されている、PHP5のシステムを7にバージョンアップする際のコストが非常に少なく済むことになります。
もちろん、互換性のない変更点もあるため、バージョンアップの際は必ずシステム全体の再テストが必要ですが、動作確認をし、機能のしなくなった部分の修正の数が他言語と比べ、少なくなるでしょう。
次に、考えられるメリットとしては処理速度の向上です。
PHPの生みの親であるRasmus氏によれば処理速度ベースではPHP7系は5系の2倍近く速くなり、しかも内部命令実行数は逆に1/3に削減されているとのことです。つまり速度向上のため内部処理を大幅にシンプルにしたのです。データ構造の改善やメモリ管理手法、検索手法の向上等によるものと、速度向上のためのさまざまな施策が取られています。
これら2点はデータ量が膨大なものや、処理が複雑なシステムなどの場合、とても重要な点であるため、非常に大きなメリットとなりますね。
PHP7のデメリット
こちらも公式サイトの言葉にありますが、今までPHP5系までは、非推奨であるものの、利用できていた機能・関数がPHP7のリリースでは一気に廃止となってしまいました。
ここに関しては、PHPを長く携わっていた人も、PHPを7で初めて触り、その後PHP5.1等のプログラムを見ることになった方などには、戸惑いが大きいかと思います。
私の場合は後者でPHP7では見たことのない機能が多くあることで、検索に次ぐ検索の毎日でした。
メリットの部分で、互換性があると記述しましたが、5系でも古いバージョンからの移行の場合は、こういった機能の削除により、システムがうまく動作しないことは容易に考えられます。そういった意味ではPHP7へバージョンアップする場合には想定外にコストが大きくなる恐れがありそうです。
まとめ
メリットとデメリットで、矛盾した記述をしてしまいましたが、php7のプログラムの処理速度やメモリの軽減を考えるとやはり、システムのphp7へのバージョンアップは必要なものに思います。
しかし、互換性に関しては5.6系の対してだけと考えるべきだと思います。
システムが今後も需要が増えていくことが考えられるもの、もちろんバージョンアップのための人員が十分に確保できる場合にのみ、バージョンアップが有効になるでしょう。
PHP7は非推奨のものを削除することで、よりコンパクトになったと感じます。そのため、シンプルでこれからさらに多くの人に気軽にプログラミングを経験させてくれる可能性が高いのではないでしょうか。