<?php
class Test
{
private $a = 10;
public $b ='abc';
}
class Test2 extends Test
{
function __construct()
{
echo $this->a;
echo $this->a = 20; // wh
}
}
$test3 = new Test2();
答案 0 :(得分:3)
echo $this->a;
回应类属性a
的值。此属性未定义,因为类a
的属性Test
为私有,因此在类Test2
中不可用。因此,属性a
是在类Test2
中创建的。
echo $this->a = 20; // wh
执行下一步:将{20}分配给a
属性(在上一行中创建)并回显赋值结果20
。
解决方案:
class Test
{
// protected property is avalilable in child classes
protected $a = 10;
public $b ='abc';
}
class Test2 extends Test
{
function __construct()
{
echo $this->a;
$this->a = 20;
echo $this->a;
}
}
$test3 = new Test2(); // outputs 10 20
答案 1 :(得分:-1)
你应该改变
private $a = 10;
为:
protected $a = 10;