php5.4の新機能

php5.4αが7/5にリリースされましたが、
そのなかで気になった機能を紹介したいとおもいます。

1. 配列をメソッドチェーンのように参照可能

php5からおなじみのメソッドチェーンですが、

class A
{
  public function foo() {
    return new B();
  }
}

class B
{
  public function bar() {
    return "あっちゃん";
  }
}

$a = new A();
echo $a->foo()->bar(); //「あっちゃん」と表示される。

戻り値を配列にした時は1度変数に入れないと、インデックスにアクセスすることは出来ませんでした。

class A
{
  public function foo() {
    return array('name' => 'あっちゃん');
  }
}

$a = new A();
$foo = $a->foo();
echo $foo['name'];

php5.4からはメソッドチェーンのように配列のインデックスにアクセス可能です。

$a = new A();
echo $a->foo()['name']; //「あっちゃん」と表示される。

2. callable配列をそのまま実行可能

callable配列( array(‘class’, ‘method’) )をそのまま実行出来るようになりました。

class Foo
{
  public function bar($name) {
    echo "こんにちは, $name";
  }
}

$f = array('Foo','bar');
echo $f('まりこさま'); // 「こんにちは, まりこさま」と表示される。

詳しくはこちらを御覧ください。

3. クロージャの中で$thisが使える

クロージャでの$thisの呼び出しがサポートされました。

class A
{
  private $value = 'ともちん';
  function single_getter($name) {
    return function() use ($name) {
      return $this->$name;
    };
  }
}
class B
{
  private $value = 2;
  function test() {
    $a = new A;
    $private_getter = $a->single_getter('value');
    print $private_getter();
  }
}

$b = new B;
$b->test();

php5.3までは、 「Fatal error: Using $this when not in object context」でしたが
php5.4では、「ともちん」と表示されます。

4.Traitsのサポート

でました、Traits。
この説明だけで一つ記事が出来ると思うので、次回書かせていただきます。

4.Traitsのサポート

でました、Traits。
この説明だけで一つ記事が出来ると思うので、次回書かせていただきます。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中