パスワードを忘れた? アカウント作成
12609310 story
PHP

PHP 7リリース、言語仕様の大幅拡張と当社比2倍の性能アップを実現 16

ストーリー by hylom
7の世界へ 部門より
あるAnonymous Coward 曰く、

PHP開発チームは3日、ついに10年以上にわたるPHP 5の時代に終止符を打ち、「PHP 7.0.0」の公式リリースをアナウンスした(アナウンスOSDN Magazine)。

PHP 7ではメジャーバージョンが上がっただけのことはあり、大幅な改造が図られている。まず最も恩恵を受けやすいのが実行エンジンの見直しによる性能向上である。内部のデータ構造の見直しなどが図られた結果、その性能はPHP 5.6と比較して2倍高速になり、メモリ使用量も50%改善したという。これによりJITコンパイラを用いるHHVMにも匹敵するパフォーマンスとなっている。

言語仕様にも手が加えられており、Fatal Errorなどの致命的エラーの数々が例外として扱われるようになった他、無名クラスの導入や以前にも話題になったスカラー型宣言、戻り値の型宣言にNull合体演算子の導入など、多数の機能追加が行われている。また廃止予定とされてきたeregなど古いモジュールの削除も実施された。変更点の詳細については「PHP 5.6.x から PHP 7.0.x への移行」ページを参照されたし。

  • by Anonymous Coward on 2015年12月07日 14時51分 (#2930106)

    非互換な変更をつらつら眺めたけど、一番怖そうなのはこれかな。

    > 変数やプロパティ、メソッドへの間接的なアクセスの扱いの変更
    http://php.net/manual/ja/migration70.incompatible.php#migration70.inco... [php.net]

    ここに返信
    • by Anonymous Coward on 2015年12月07日 16時49分 (#2930215)

      php5の悪夢再び。
      #これが最後の糞仕様変更とは思えない。phpがあるかぎりいずれ第二第三の糞仕様変更が(ry

      これによる実際の変更箇所の「個数」は少ないかもしれないけれど、どこがその該当箇所であるかを
      検出し、それを等価な処理に変更したことを保証するのがべらぼうに面倒だったりするんだよ。

      それって現実的には変更コストが高過ぎて、事実上移植できなくなるってこと。
      結局はPHP6以前のコード(メジャーなフレームワークやライブラリも含む)は、
      7へ移植されることなしに消えていく運命なのかもね。

      • by Anonymous Coward

        糞仕様変更がない言語は死んだ言語だけだ。

        PHPは元々書き捨てみたいなもんでしょ。
        十年以上も使う保守主眼の重厚長大言語じゃないし、さっさと次の物を作った方が早い。

        • by Anonymous Coward

          >十年以上も使う保守主眼の重厚長大言語じゃないし、さっさと次の物を作った方が早い。
          2000年問題から何も学習しなかった老害さんか?

          そう言って放置した結果、現行製品の保守もできずに苦労していたPHP開発現場を私は知っている。
          そもそもそれで問題が無ければ、こんなに頻繁にフレームワークが入れ替わったりしないのではないか?

    • by Anonymous Coward

      変数内容をメソッド名に使っての呼び出しでしょ
      そこまで頻繁にはやらない印象があるが…まぁ嫌だけど

  • by Anonymous Coward on 2015年12月07日 15時10分 (#2930121)

    こういうこと、Microsoftもやってたな…
    そう、DirectX 4.0だよ!

    # Windows 9はマーケティング上の理由が大きいからまた別か

    ここに返信
    • by Anonymous Coward

      Perl 6 の仲間と思われたくなかったからなんでないの?

      • by Anonymous Coward

        PHPとPerlのバージョンナンバーをごっちゃにする奴って何人くらいいるのかなあ。(#2930147以外で)

    • by Anonymous Coward

      4は死に通じて縁起が悪いからだっけ?
      同様に、Windows9は苦に通じて縁起が悪いからスキップ

      • by Anonymous Coward
        公式な発表では、StartWith("Windows 9") でOSの種類を比較してるクソコードがまだ世の中に相当数あるので避けたということですが。
        • by Anonymous Coward

          それは確か外野の憶測です。非常に説得力が強いことは事実ですがね。
          公式には7,8,9のダジャレを言っているだけだったはず。つまり本当の理由は秘密ってこと。

      • by Anonymous Coward

        PHP4も、NT4も存在してただろ。

    • by Anonymous Coward
      PHP6は誰も幸せになるひとがいない、クソ仕様変更しようとして破綻したから廃棄されただけ。
      政治的な理由は無い
    • by Anonymous Coward
      Officeの内部バージョンも13をスキップしてたしけっこう気にするようですね
  • by Anonymous Coward on 2015年12月07日 17時27分 (#2930238)

    多くのウェブサイトはPHP、特にwordpressで公開されてたりするけど、
    すべてのサーバーがPHP7に移行した場合、どれくらいのサーバーが節約できるんだろう。
    アクセス多くてスケールしないとやっていけないような人気のサイトは少数だろうし、そこまでインパクトはないか。
    いや、それより共有レンタルサーバーがより多くのユーザーを1台に詰め込めるようになるのかな。
    それは結構大きいかも。

    ここに返信
  • by Anonymous Coward on 2015年12月07日 17時54分 (#2930262)

    オフトピだけど、そういえば、わざわざ言わない場合は、言語のバージョン=実装のバージョン、という暗黙の了解でいいのか。

    極端な所では「PHP言語7.0.0」の言語仕様が確定しましたが、それを余すところなく実装したPHPランタイムは未だ無いです、とか、
    PHPランタイム7.0.0はPHP言語7.0.0仕様を満たしていないバグがあって修正され、ランタイム7.8.3でようやく言語7.0.0相当になりました、とか、
    そういうバージョン間の齟齬はどうやって処理しているんだろう、とか、とりとめのないことを思ってしまった。
    サードパーティーのPHPランタイムを作る場合は、PHP言語7.0.0相当を名乗るべきなのか、PHP7.0.0互換を名乗るのべきなのか、とか。
    ライブラリを公開する場合に、何対応と言えば良いのかとか。

    言語と実装の分離がされてるC++とかCとかと比べてどうなんだろう。
    逆に、Rubyの、実装が仕様だ、はまだ生きてるのかな。

    ここに返信
typodupeerror

開いた括弧は必ず閉じる -- あるプログラマー

読み込み中...