数年間、私は専門的に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.