Mainクラスのmainメソッドを作った時の話
<?php class Main { public function main() { } } $main = new Main(); $main->main();
このクラスを実行すると、何故かMain->main()
の処理が2回実行された。
・・・・?
どうやら、大文字・小文字を認識しないっぽい。さらに、クラスと同じ名前のfunction
はコンストラクタとなる。
そのため、オブジェクト化でコンストラクタが呼ばれる(1回目)、その次にメソッドmain
を呼ぶ(2回目)という動きになった。
まじか。。。。
__construct()
を記述するか、クラス名と違う名前のメソッドを記述することで回避できる。
<?php class Main { public function __construct() { } public function main() { } } $main = new Main(); $main->main();
これでおk