みなさんこんにちは! 噂によると、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.