PHPの名前空間の区切り文字

私はPHPの内部に精通することをお勧めします:endnamespacediscussion



IRCでの別の議論の後、PHPの名前空間で区切り文字として\文字を使用することが決定されました。 パッチは準備中であり、PHP 5.3に移行するかどうかは不明です。



引数はここまたはここにあります。



開発者によると、区切り文字として::を使用する場合の主な問題は、コード行で何が起こっているかを理解することです

Foo::bar();







それは難しくなります(Fooクラスから静的bar()メソッドを呼び出すか、Foo名前空間からbar()関数を呼び出すか)。 追加の制限は、PHPインタープリター自体です。これは、名前解決と静的メソッドの呼び出しを区別できません。 \文字を使用すると、このようなあいまいさを取り除くことができます。





ただし、多くの開発者は、これは間違った選択だと考えています。 \文字はエスケープシーケンスで使用されます。 分析は言うまでもなく、コードを強調表示するレベルでさえ、既存のエディターやIDEでコードを編集すると問題が発生します。



パッチの開発者によると、このアプローチの利点は、\がWindowsの\分離\要素\パスに使用されるため、Windowsの世界のプログラマーにとって直感的であるということです(調査の結果によると、PHPのほとんどの読者は、WindowsおよびUnixで作業しています)作業を展開するだけです:-))。



その他の長所:

  1. \は::と視覚的に異なるため、コードを簡単に確認すると、名前空間と静的メソッドを簡単に区別できます。
  2. \は、英語レイアウトでキーごとに1つだけ(シフトをピンチする必要はありません)コードに挿入されます





All Articles