新自我与新静态我正在将PHP5.3库转换为PHP5.2。我遇到的主要障碍是后期静态绑定的使用,比如return new static($options);,如果我把这个转换成return new self($options)我会得到同样的结果吗?.之间的区别是什么?new self和new static?
3 回答
烙印99
TA贡献1829条经验 获得超13个赞
我会得到同样的结果吗?
.之间的区别是什么? new self和 new static?
selfnew
static
BAselfAAstaticget_called_class()).
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()); // Aecho get_class(B::get_static()); // Becho get_class(A::get_self());
// Aecho get_class(A::get_static()); // A
守候你守候我
TA贡献1802条经验 获得超10个赞
将使用运行时信息计算。
static::
必须能够在编译时进行评估,并且不能依赖于运行时信息。
class Foo {
public $name = static::class;}$Foo = new Foo;echo $Foo->name; // Fatal errorself::
class Foo {
public $name = self::class;}$Foo = new Foo;echo $Foo->name; // Foo- 3 回答
- 0 关注
- 407 浏览
添加回答
举报
0/150
提交
取消
