35687


**クラスの中で、static宣言をしているプロパティやメソッドの記述順序で参考になるようなものがあれば知りたい**
のですが、一般的にはどう書くのでしょうか？

**案1.**  
・staticは後  
・プロパティ → メソッド順

[code]

    class Hoge{
      public $a = 1;
      static public $b = 1;
      public function c(){}
      static public function d(){}
    }
    
[/code]

**案2.**  
・staticが先  
・プロパティ → メソッド順

[code]

    class Hoge{
      static public $b = 1;
      public $a = 1;
      static public function d(){}
      public function c(){}
    }
    
[/code]

* * *

また、「public」「private」「protected」なども絡むときは、どういう順番で書いた方が良い、とかあるでしょうか？


CC BY-SA 3.0
2017-06-17T00:23:10.127
35650
2017-06-18T15:59:25.570
7886
question
php
クラスの中で、static宣言をしているプロパティやメソッドの記述順序


phpではないですが、javaに関しては[SunMicroSystems](http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-141855.html#1852)の規約によると以下の順番とのことです。  
phpも概ねこの通りではないかと思います。

  * javadoc用classコメント
  * class/interfaceの定義
  * (必要なら処理説明コメント)
  * staticメンバの定義 
    * public
    * protected
    * デフォルト修飾子
    * private
  * インスタンスメンバ(staticではないメンバ) 
    * public
    * protected
    * デフォルト修飾子
    * private
  * コンストラクタ
  * メソッド 
    * メソッドに関してはアクセス修飾子順ではなく機能単位でまとめることを優先する

c++の場合はpublic:スコープなどアクセス修飾子毎にスコープがあるので  
アクセス修飾子の入れ子にstatic/instance順ですね。


CC BY-SA 3.0
2017-06-18T15:59:25.570
35687
2017-06-18T15:59:25.570
19716
35650
answer