+ -
当前位置:首页 → 问答吧 → php 父类和子类的一点疑问。

php 父类和子类的一点疑问。

时间:2011-09-07

来源:互联网

在父类的构造函数中进行了一些运算以及判断。

而在子类的构造函数调用了父类的构造函数,那么直接调用子类的任意方法,是不是意味着在父类中的运算以及判断都相当于做了2次呢?

如何避免这个问题呢?

如果是这样的话,那问题就是大了,比如我判断2个时间差:

PHP code

$currentime = time();
echo time() - $session['lastdate']; //最后echo出来的会是2个结果,而且后一个结果永远都是0,那这个判断还怎么做?

作者: wcunw   发布时间: 2011-09-07

我表示看不懂...

作者: PhpNewnew   发布时间: 2011-09-07

PHP code

class Parentcls {
    /**
     * 构造函数
     */
    public function __construct(){
        $currentime = time();
        echo $currentime - $session['lastdate'];
    }
}


class Soncls extends Parentcls {
    /**
     * 构造函数
     */
    public function __construct(){
        parent::__construct();
    }
}

class Grandsoncls extends Soncls{
    /**
     * 构造函数
     */
    public function __construct(){
        parent::__construct();
        $this->show();
    }
    public function show(){
    }
}

$obj = new Grandsoncls;
$obj->show();



这样一来出来的会有2个数字,前一个数字是正常的,而最后一个数字永远都是0,我在base类如果进行一些判断是否为0的操作的时候,那么返回的结果都会是条件为0的结果。

作者: wcunw   发布时间: 2011-09-07

我怎么看楼主是不是贴错代码了,哪里有base类

$obj = new Grandsoncls; 只会返回 Parentcls 类的
  $currentime = time();
  echo $currentime - $session['lastdate'];
结果
Grandsoncls::show() 方法是空的啊

作者: dream1206   发布时间: 2011-09-07

构造函数会自动先执行的

作者: wcunw   发布时间: 2011-09-07

相关阅读 更多

热门下载

更多