php区分new static 和new self

关键点在于一个是静态绑定,一个是延迟绑定

<?php

class A
{
public function __construct() {

}

public function createObjStatic() {
$obj = new self();
$obj->say();
}

public function createObjDynamic() {
$obj = new static();
$obj->say();
}

public function say() {
echo "I'm class A.";
}
}


class B extends A
{
public function __construct() {

}

public function say() {
echo "I'm class B.";
}
}


$B = new B();
$B->createObjDynamic();
echo "<BR>";
$B->createObjStatic();

?>

posted @ 2016-08-02 09:29  SKY_VIEW  阅读(147)  评论(0编辑  收藏  举报