質問編集履歴
1
誤字修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
解
|
1
|
+
プログラミングにおける解決とは何なのか
|
test
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
プログラミングにおける**解決**とは何なのでしょうか。
|
2
2
|
|
3
|
-
例えば、PHP5.3から導入された静的遅延束縛についてですが、指定した静的メソッド(__class__で実行中のクラス名を表示するだけの処理)を同クラスで指定した別のメソッド上で実行(se
|
3
|
+
例えば、PHP5.3から導入された静的遅延束縛についてですが、指定した静的メソッド(____class____で実行中のクラス名を表示するだけの処理)を同クラスで指定した別のメソッド上で実行(self::静的メソッド名())できるようにしたクラスを継承した子クラスにおいてその静的メソッドを上書きして利用するとします(内容は同じでクラス名を表示するだけ)。
|
4
4
|
|
5
|
-
子クラスを実体化し親クラスから継承したメソッド(静的メソッドを呼ぶやつ)を使うと、静的メソッドが呼び出されます。しかし__class__の効果で子クラスの名前が表示されるのかと思いきや、親クラスの名前が表示されてしまいます。ということでここでスコープ定義演算子のstatic::を静的メソッドを呼び出すためのメソッドに使います。
|
5
|
+
子クラスを実体化し親クラスから継承したメソッド(静的メソッドを呼ぶやつ)を使うと、静的メソッドが呼び出されます。しかし____class____の効果で子クラスの名前が表示されるのかと思いきや、親クラスの名前が表示されてしまいます。ということでここでスコープ定義演算子のstatic::を静的メソッドを呼び出すためのメソッドに使います。
|
6
6
|
|
7
7
|
self::静的メソッド名から static::静的メソッド名とすると先ほどと違い子クラス名が表示されるようになります。
|
8
8
|
|