カテゴリー:
クラスとオブジェクト
閲覧数:443 配信日:2017-01-17 11:03
メンバ(内容別)
メンバ
|
+--- プロパティ
| |
| +--- インスタンスプロパティ
| |
| +--- クラスプロパティ
|
+--- メソッド
|
+--- インスタンスメソッド
|
+--- クラスメソッド
|
+--- プロパティ
| |
| +--- インスタンスプロパティ
| |
| +--- クラスプロパティ
|
+--- メソッド
|
+--- インスタンスメソッド
|
+--- クラスメソッド
メンバへのアクセス方式(書式)
メンバへのアクセス方式
|
+--- 「インスタンスオブジェクト経由アクセス」→「->(アロー演算子)」利用。オブジェクト生成必要
|
+--- 「クラスアクセス」→「:(スコープ演算子)」利用。オブジェクト生成不要
|
+--- 「インスタンスオブジェクト経由アクセス」→「->(アロー演算子)」利用。オブジェクト生成必要
|
+--- 「クラスアクセス」→「:(スコープ演算子)」利用。オブジェクト生成不要
メンバへのアクセス(プロパティ)
class A
{
public $p;
public static $s;
}
$a = new A();
{
public $p;
public static $s;
}
$a = new A();
メンバへのアクセス(プロパティ)
|
+--- $a->p ◯「オブジェクト経由アクセス」インスタンスプロパティ
|
+--- $a->s ×「オブジェクト経由アクセス」クラスプロパティ ※「スタティック」宣言したプロパティは完全に「クラスプロパティ」となるため、「インスタンスプロパティ」としてオブジェクト経由で参照することはできない
|
+--- A::$p ◯「クラスアクセス」インスタンスプロパティ
|
+--- A::$s ◯「クラスアクセス」クラスプロパティ
|
+--- $a->p ◯「オブジェクト経由アクセス」インスタンスプロパティ
|
+--- $a->s ×「オブジェクト経由アクセス」クラスプロパティ ※「スタティック」宣言したプロパティは完全に「クラスプロパティ」となるため、「インスタンスプロパティ」としてオブジェクト経由で参照することはできない
|
+--- A::$p ◯「クラスアクセス」インスタンスプロパティ
|
+--- A::$s ◯「クラスアクセス」クラスプロパティ
メンバへのアクセス(メソッド)
class A
{
public $p();
public static $s();
}
$a = new A();
{
public $p();
public static $s();
}
$a = new A();
メンバへのアクセス(メソッド) ※メソッド内の記述によっては下記と異なる挙動となる
|
+--- $a->p() ◯「オブジェクト(インスタンスメソッド)経由アクセス」
|
+--- $a->s() △「オブジェクト(クラスメソッド)経由アクセス」 ※可読性の観点から、クラス関数へはアロー演算子でアクセスしない方がよい
|
+--- A::p() △「クラスアクセス(インスタンスメソッド経由)」 ※static でないメソッドを静的呼出ししているので、限りなくまちがいに近い
|
+--- A::s() ◯「クラスアクセス(クラスメソッド経由)」
|
+--- $a->p() ◯「オブジェクト(インスタンスメソッド)経由アクセス」
|
+--- $a->s() △「オブジェクト(クラスメソッド)経由アクセス」 ※可読性の観点から、クラス関数へはアロー演算子でアクセスしない方がよい
|
+--- A::p() △「クラスアクセス(インスタンスメソッド経由)」 ※static でないメソッドを静的呼出ししているので、限りなくまちがいに近い
|
+--- A::s() ◯「クラスアクセス(クラスメソッド経由)」