<?php
class A
{
const C = 'constA';
const D = 'constC';
public function m()
{
echo static::C;
}
public function n()
{
echo self::D;
}
}
class B extends A
{
const C = 'constB';
const D = 'constD';
}
$b = new B();
$b->m();
echo '<br/>';
$b->n();
parent 引用的是父类作用域,self引用的是当前类的作用域,而static引用的是全部静态作用域,子类会覆盖父类
php 静态延迟绑定
<?php
class A {
public static function get_self() {
return new self();
}
public static function get_static() {
return new static();
}
}
class B extends A {}
echo get_class(B::get_self());
echo get_class(B::get_static());
echo get_class(A::get_static());
http://www.jb51.net/article/81016.htm
http://www.jb51.net/article/54167.htm