PHP 5.4の新機能

みなさんこんにちは! 噂によると、1月19日、次のRC PHP 5.4がリリースされる予定でした。 最終的になる可能性さえあります。 そしてこれは、新しい機会の研究に迅速に取り組む必要があることを意味します。



数年間、私は専門的にWeb開発に従事し、PHPをメインサーバー言語として使用しています。 そのため、このようなメジャーアップデートのリリースについて学んだ後、情報を収集しに行きました。 最も重要な技術革新の猫候補リストの下。







不純物



5.4の重要な新規性は不純物です。 これらは、PHPの多重継承の代替として機能します。 各混合物は、traitキーワードを介して個別の「クラス」によって定義されます。 不純物の内部では、不純物が接続されるクラスで使用できるメソッドを定義できます。 不純物はuse languageコンストラクトを使用して接続されます。 不純物の名前はコンマで区切られて与えられ、そのメソッドはすべてクラス内で使用可能になります。



クラスメソッドと不純物の名前が一致する場合、クラスメソッドが優先メソッドになります。 残念ながら、この場合、通知さえも受け取りません。



不純物は、親コンストラクトを介して、接続されているクラスに常にアクセスできます。



class A {
  public function foo() {
    return 'foo';
  }
}

trait B {
  public function bar() {
    return parent::foo() . ' bar';
  }
}

class C extends A {
  use B;
}

$c = new C();
echo $c->foo(); // foo
echo $c->bar(); // foo bar

      
      









-. , multibyte . .



Array dereferencing support



— PHP . , ? , , ? :



function foo() {
  return array(1, 2, 3);
}

echo foo()[0]; // 1

      
      







Short syntax for arrays



PHP 5.4 , array.



//    :
$array = array(1, 2, 3);

//   :
$array = [1, 2, 3];

//   :
$array = ['first' => 1, 'second' => 2];

      
      







-



, PHP -, . - :

php -S localhost:8000







Upload progress



, HTML 5 File API ( ), PHP 5.4 . , , upload_progress_myform Ajax' -.





, . , , .



class A {
  public static function foo_bar() {
    return '123';
  }
}

$foo = 'foo';
$bar = 'bar';

echo A::{$foo . '_' . $bar}(); // 123

      
      







Scalar type hints



PHP . . : int, float boolean.



function foo(int $a, bool $b) {
  return true;
}

      
      







@



@ PHP . @ - . .



- — . Exceptions.



Deleted



PHP - register_globals, long_arrays , .









Update: trail trait, , DoctorChaos .

Update 2: Scalar type hints PHP 5.4 . , SVN 5.4 scalar type hints :( Irker sectus.



All Articles