BT

PHP 5.6リリース

| 作者: Sergio De Simone フォローする 12 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2014年9月21日. 推定読書時間: 3 分 |

原文(投稿日:2014/09/02)へのリンク

PHP開発チームがPHP 5.6のリリースを発表した 。 新リリースは新機能と多数の改善に加えて,開発チームによると,下位互換性のない変更がいくつか含まれている。

今回のリリースで最も重要な変更点は以下のものだ。

  • 定数スカラ式

    定数宣言,関数のデフォルト引数,およびクラスのプロパティで,基本的な算術演算や論理演算子が使用できるようになった。

    const ONE = 1;
    const TWO = ONE * 2;
    
    class C {
    const THREE = TWO + 1;
    const ONE_THIRD = ONE / self::THREE;
    const SENTENCE = 'The value of THREE is '.self::THREE;
    
    public function f($a = ONE + self::THREE) {
        return $a;
        }
    }
    
  • 可変引数の構文の改善

    可変引数の関数が,新しいオペレータ"..."を使用して宣言できるようになった。

     
    public function variadic_function($param, ...$paramsArray) {
         // method implementation
    }
    

    上の構文の "...$paramsArray"は,配列$paramsArrayにすべての可変引数を格納して,その後のメソッド実装でそのまま使用できるように,インタプリタに指示するものだ。これまでの可変引数は,次のような呼び出しを行って配列にバンドルする必要があった。

    $paramsArray = array_slice(func_get_args(), 1)
    
  • 累乗法

    新たな"**”演算子で累乗演算が可能になった。

  • UTF-8

    デフォルトの文字エンコーディングがUTF-8に設定された。

  • GMP演算子のオーバーロード

    GMPオブジェクトの演算子オーバーロードとスカラ型へのキャスト演算子が新たにサポートされた。これによって,GMPを使用するコードの表現力が向上する。

    $a = gmp_init(42);
    $b = gmp_init(17);
    
    // 5.6以前のコード
    var_dump(gmp_add($a, $b));
    var_dump(gmp_add($a, 17));
    var_dump(gmp_add(42, $b));
    
    // 新しいコード
    var_dump($a + $b);
    var_dump($a + 17);
    var_dump(42 + $b);
         
  • 大容量ファイルのアップロード

これまでの2GBというファイルのアップロード制限が廃止されて,任意のサイズのアップロードがサポートされるようになった。

PHP 5.5からアップグレードするユーザ用には,5.5と5.6.0の変更を詳細に説明するとともに,多数の新機能の簡単なデモでそれらを補完したマイグレーションガイドが用意されている。

PHP 5.6.0では,互換性に影響する変更も導入されている。

  • 配列リテラルを使用してクラスのプロパティとして配列を定義する場合,配列のキーが上書きされないようになった。

  • json_decode()の構文解析がこれまでより厳密になった。

  • SSL / TLSを使用する場合,ストリームラッパがデフォルトでピア証明書とホスト名を確認するようになった。

  • GMPリソースがオブジェクトになった。

  • Mcrypt関数に有効なキーとIVが必要になった。

すべての変更点の完全なリストは,ChangeLogに追記されている。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT