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.

Source: https://habr.com/ru/post/J136800/


All Articles