質問するログイン新規登録

回答編集履歴

2

誤字修正

2017/01/21 12:36

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -10,7 +10,7 @@
10
10
  [公式PHPマニュアル](http://php.net/manual/ja/language.oop5.decon.php)
11
11
  > PHP 3 や PHP 4 との下位互換性を維持するため、もし PHP がクラスの __construct() 関数を見つけられない場合は、 古い形式のコンストラクタ (つまりクラス名と同じ名前の関数)を捜します。 事実上、互換性の問題が発生する可能性があるのは、 そのクラスが __construct() という名前のメソッドを 異なる用途で用いてる場合だけです。
12
12
 
13
- にあるように(少しわかりにくいですが)、PHP(7未満)では名前空間が定義されていないクラス内に__construct()が定義されていない場合、クラス名と同名のメソッドが存在する場合に同名のメソッドがコンストラクタ(newとして扱われます。
13
+ にあるように(少しわかりにくいですが)、PHP(7未満)では名前空間が定義されていないクラス内に__construct()が定義されていない場合、クラス名と同名のメソッドが存在する場合に同名のメソッドがコンストラクタとして扱われます。
14
14
 
15
15
 
16
16
 

1

追記

2017/01/21 12:36

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -8,4 +8,11 @@
8
8
  とありますが、コンストラクタ=そのクラスのオブジェクトが生成される際に実行されるメソッドです。
9
9
 
10
10
  [公式PHPマニュアル](http://php.net/manual/ja/language.oop5.decon.php)
11
+ > PHP 3 や PHP 4 との下位互換性を維持するため、もし PHP がクラスの __construct() 関数を見つけられない場合は、 古い形式のコンストラクタ (つまりクラス名と同じ名前の関数)を捜します。 事実上、互換性の問題が発生する可能性があるのは、 そのクラスが __construct() という名前のメソッドを 異なる用途で用いてる場合だけです。
12
+
11
- にあるように、PHP(7未満)ではクラス内に__construct()が定義されていない場合、クラス名と同名のメソッドが存在する場合に同名のメソッドがコンストラクタ(newとして扱われます。
13
+ にあるように(少しわかりにくいですが)、PHP(7未満)では名前空間が定義されていないクラス内に__construct()が定義されていない場合、クラス名と同名のメソッドが存在する場合に同名のメソッドがコンストラクタ(newとして扱われます。
14
+
15
+
16
+
17
+ **ただ、これは古い形式なので、今から書くコードとして推奨されるものでは無いので
18
+ __construct()をコンストラクタとして定義することをお勧めします。**