加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP new static($variable)

发布时间:2020-12-13 13:36:41 所属栏目:PHP教程 来源:网络整理
导读:$model = new static($variable); 所有这些都在一个类中的方法内,我试图在技术上理解这段代码的作用.我在Google世界里跑来跑去.但找不到任何可以让我得到答案的东西.这只是另一种说法. $model = new static $variable; 还怎么样呢 $model = new static; 这是
$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视为当前对象范围是最容易的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读