大家也许对PHP5面向对象已经不再陌生,虽然对一些问题的反映虽然加强了很多,但还有很多东西比起java的面向对象弱了很多。有些东西甚至让人费解,就比如下面的PHP5面向对象代码,b extends a ,实例化b时a的构造函数却没执行?不知道实例化b时,PHP到底是怎么执行的,高手来帮忙解惑!还有PHP的static成员竟然能在非static方法中使用,还好反过来会报错。
#t#好了,先将代码贴出来
- class a {
- function __construct() {
- echo "a";
- }
- }
- class b extends a{
- function __construct(){
- echo "b";
- }
- private $x=100;
- public static function getx(){
- return $this->x;
- }
- }
- $x=new b();
- echo $x->getx();
结果是:
b100
“a”竟然没有输出,真不知到PHP5面向对象里类初始化的顺序。