gpt4 book ai didi

php - 如何从 PHP 中的静态方法中看到类的 protected 属性?

转载 作者:行者123 更新时间:2023-12-04 14:38:26 26 4
gpt4 key购买 nike

我了解 OOP。到目前为止我所理解的是,不能使用 $this->blah 符号从类外部引用 private 和 protected 。如果这是正确的,以下代码如何工作?

<?php

class test {
protected $a = "b";

public static function oo(){
$instance = new static();
echo $instance->a;
}
}

test::oo();

给我一个 b 的输出!现在,以主的名义,这怎么可能发生?

最佳答案

在 PHP 5.3 中,添加了一个称为后期静态绑定(bind)的新功能——这可以帮助我们获得在这种情况下可能更可取的多态行为。简单来说,后期静态绑定(bind)意味着对继承的静态函数的调用将在运行时“绑定(bind)”到调用类。所以,如果我们使用后期静态绑定(bind),这意味着当我们调用“test::oo();”时,测试类中的oo()函数将被调用。然后你返回$instance->一种; static 关键字允许函数在运行时绑定(bind)到调用类。所以如果你使用 static 那么你使用的任何访问修饰符(private、public、protected)只是意味着更少......

请阅读此 link , another

关于php - 如何从 PHP 中的静态方法中看到类的 protected 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27139019/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com