gpt4 book ai didi

php - 在 PHP 中从父类访问重写的 protected 变量

转载 作者:行者123 更新时间:2023-12-03 19:14:43 24 4
gpt4 key购买 nike


如何通过在子类中调用其 getter 方法来从父类访问重写的 protected 变量?

例如:

class A{
protected x='test';
protected function printx(){
echo $this->x;
}
}

class B extends A{
protected x='test2';

public function printxs(){
parent::printx();
echo "\n";
echo $this->x;
}
}

$b=new B;
$b->printsx();

我期待这个打印:

test
test2

但这会打印:

test
test

最佳答案

首先,它不打印 test\ntest,而是打印 test2\ntest2

当你对父类(super class)进行子类化时,你就是在专门化父类(super class)。在我们的示例中,我们使用 B 类专门化 A 类。通过这种专门化,我们重新定义了 protected 对象变量 $this->x 的值。

当您调用父类(super class)的方法 printx() 时,我们会被要求回显 $this->x 的值,该值已在我们的子类中重新定义为 test2,而不是测试

这是 PHP 化的代码:

<?php

class A {
protected $x = 'test';
protected function printx(){
echo $this->x;
}
}

class B extends A {
protected $x = 'test2';

public function printsx(){
parent::printx();
echo "\n";
echo $this->x;
}
}

$b=new B;
$b->printsx();

关于php - 在 PHP 中从父类访问重写的 protected 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5695583/

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