<?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();
-6
A
回答
3
echo $this->a;
呼应类属性a
的价值。此属性是未定义,因为类的属性a
是私人,因此在类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
你应该改变
private $a = 10;
到:
protected $a = 10;
+0
当然,但问题是“为什么” ?你可以从[u_mulder的回答](https://stackoverflow.com/a/46745074/1415724)了解一两件事。 –
+0
谢谢walid ajaj –
相关问题
- 1. c - 为什么它给出运行时错误,但它给出输出
- 2. 在Javascript控制台中给出1,{a:1,b:2}给出错误的{a:1}打字行为是什么?
- 3. “a && not b”给出语法错误?
- 4. *(a ++)给出错误但不是*(a + 1)??其中a是数组名称?
- 5. raw_input A = 10,如果A == 10给出false:Python
- 6. 当a = 1时,a,a ++,++ a的输出是什么;
- 7. 为什么“a”的输出是-80?
- 8. 为什么输出是“In foo,a = 7”?
- 9. Python:df.mean似乎给出了错误的输出,为什么?
- 10. 为什么当x(t)为空时输出是['a','b','a']。 Python
- 11. 为什么to_csv给出错误?
- 12. 错误的输出,但为什么?
- 13. iptables给出输入/输出错误
- 14. 为什么sopln()给出错误?
- 15. 为什么mcrypt_encrypt会给出错误?
- 16. 为什么会给出错误?
- 17. 为什么JavaScript给出这个错误?
- 18. 为什么数组给出错误?
- 19. 为什么RowObjectEventArgs给出错误的行?
- 20. 为什么程序给出错误?
- 21. 为什么“this”给出错误?
- 22. 为什么double a =(double)('z'/'A')只给出C++中的整数部分?
- 23. 为什么[a-z] [A-Z]给出的结果与[ą-ž] [Ą-Ž]不同?
- 24. 为什么* p ++ = * p - a给出奇怪的结果?
- 25. 在Ruby中,为什么Hash [:a,1]和Hash [[[a,1]]]给出了相同的结果{:a => 1},而Hash [[:a,1]]给出了一个空哈希?
- 26. 为什么使用char a =“2”;的printf( “%d”,一);给出输出0.哪个是空的。但是如何?
- 27. DNS查询给出错误输出
- 28. 为什么输出错误?
- 29. NCalc Expression.Evaluate()给出错误的输出
- 30. addsubview给出错误的输出?
的Bleh。我接近投票错误的原因。我应该欺骗了这个https://stackoverflow.com/questions/4361553/what-is-the-difference-between-public-private-and-protected – Machavity
感谢您的帮助 –