PHP4でのメソッド呼び出しからメソッド呼び出し
<?php class Human { var $name_obj; var $age_obj; function Human() { $this->name_obj = new Name("山田次郎"); $this->age_obj = new Age(23); } function &getInstance() { static $instance; if (is_null($instance)) { $instance = new Human(); } return $instance; } function &getNameObj() { return $this->name_obj; } function &getAgeObj() { return $this->age_obj; } } class Name { var $name; function Name($str) { $this->name = $str; } function getName() { return $this->name; } } class Age { var $age; function Age($int) { $this->age = $int; } function getAge() { return $this->age; } } $man = &Human::getInstance(); echo Human::getInstance()->getNameObj()->getName(); //山田次郎が返ってくるのを期待
PHP5だと正常に動くんだけど、PHP4だと
PHP Parse error: parse error, unexpacted T_OBJECT_OPERATOR が吐かれてしまう。
上記のページで調べるとオブジェクト周りのマニュアルに行くんだけど、何一つオペレーターについて書いてないっぽい。
とりあえず、動作としてはPHP4ではメソッド呼び出しをさらにメソッド呼び出しするような書き方だとエラーってことかなぁ?
次はphp.iniで設定出来るのか調べてみる。