php - 为什么我可以访问父 php 类中的私有(private)属性?

标签 php class

我们最近发现了这种奇怪的 PHP 行为。在父类中访问 private 不应该工作。这是一个功能吗?也许有人可以解释一下。

// PHP classes

class Father {
    // private property
    private $value = 'test';
}

Class Child extends Father {

    // Should fail, se
    public function setValue() {
     $this->value = 'why does';
    }

    public function getValue() {
     return $this->value;
    }
}


$c = new Child();

// should fail!
$c->setValue();
echo $c->getValue() . "|";

// should fail!!!!!!!
$c->value = "it work?";
echo $c->getValue();

// output: why does|it work?

最佳答案

你不是在改变父亲的私有(private)属性(property),而是为 child 引入一个新的属性(property) value

关于php - 为什么我可以访问父 php 类中的私有(private)属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13614214/

相关文章:

php - 在 GCM 的 Android 设备上不接收消息

php - 在刷新页面之前,MySql 数据不会显示在 html 表单上

php - yii mysql 服务器在插入查询时消失了

ios - 无法将变量从类中的函数传递到 Swift 中的另一个函数

类中的 Java 对象不是 main

PHP serialize() ― 规范

php - 使用 SQL 查询填充下拉列表,将值附加到数组的开头,然后回显所选内容

java - 我的 BMI 计算器出了什么问题?

c++ - 在 C++ 类方法中使用 *this 完全覆盖自实例化

c++ - 我是否总是必须将任何不影响实例状态的方法声明为 const?