今日は何もすることがないので、phpstormのバージョン選択のところに各バージョンの違いが簡単に記載されていたのを時折見かけたのでまとめてみました。
以前のバージョンと比較して、PHP5.3 と PHP5.3 の最大の違いは、日常の開発や主要なフレームワークで一般的に使用される名前空間と匿名関数です。詳細に。
PHP5.4 の主な更新点は、配列の省略構文の形式と特性です。
配列の略語については、次のように配列の新しい宣言メソッドを追加するだけです。
// PHP5.4之前$array = array( "foo" => "bar", "bar" => "foo",);// 自 PHP 5.4 起$array = [ "foo" => "bar", "bar" => "foo",];
PHP5.4 の特徴は比較的まれです。 :
class Base { public function sayHello() { echo 'Hello '; }}trait SayWorld { public function sayHello() { parent::sayHello(); echo 'World!'; }}class MyHelloWorld extends Base { use SayWorld;}$o = new MyHelloWorld();$o->sayHello();
説明: 結果は「Hello World!」で、基本クラスから継承されたメソッドはトレイト内の同じ名前のメソッドによって上書きされ、現在のクラスのメソッドは、同じ名前の特性メンバーのメソッドをオーバーライドします。特性に属性が定義されている場合、同じ名前の属性を現在のクラスの抽象メソッドに定義することはできません。特性。次のように、カンマで区切って複数の特性を使用できます。
use SayHello1,SayHello2;
SayHello1 と SayHello2 に同じ名前のメンバーがある場合、致命的なエラーが発生します。 解決策は次のとおりです。
use SayHello1,SayHello2 { SayHello1::sayHello insteadof SayHello2; // 意思是用SayHello1中的sayHello方法代替SayHello2中的同名方法,注:此处的sayHello不一定是静态方法 // ... // 或 SayHello1::sayHello as sayHello1; // 为其另取一个名字,也可解决}
PHP5.5での変更点は主に、例外処理におけるfinallyキーワードとgeneratorジェネレータの追加です。
finally についてのコード記述:
try { throw new ErrorException('Some Error Message');} catch (ErrorException $e) { echo $e->getMessage()."111 \n";} catch(Exception $e) { echo $e->getMessage()."222 \n";} finally { echo 'finally';}
例外が発生するかどうかに関係なく、finally が出力されます。
発電機について説明書を読んだのですが、何のことか分かりません。分かった、それに...
今日はここに来よう...