PHP new static($variable)

前端之家收集整理的这篇文章主要介绍了PHP new static($variable)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
$model = new static($variable);

所有这些都在一个类中的方法内,我试图在技术上理解这段代码的作用.我在Google世界里跑来跑去.但找不到任何可以让我得到答案的东西.这只是另一种说法.

$model = new static $variable;

还怎么样呢

$model = new static;

这是否意味着我正在初始化变量并将其值设置为null但是我只是在运行方法后保持变量不丢失值?

static在这种情况下表示当前对象范围.它用于后期静态绑定.

通常这与使用self相同.它不同的地方是当你有一个对象层次结构时,在父级上定义对范围的引用,但是在子对象上调用它.在这种情况下,self会引用父母范围,而static会引用孩子的范围

class A{
    function selfFactory(){
        return new self();
    }

    function staticFactory(){
        return new static();
    }
}

class B extends A{
}


$b = new B();

$a1 = $b->selfFactory(); // a1 is an instance of A

$a2 = $b->staticFactory(); // a2 is an instance of B

将self视为定义范围并将static视为当前对象范围是最容易的.

猜你在找的PHP相关文章