<?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. 爲什麼下面的程序給出了輸出:A
- 2. c - 爲什麼它給出運行時錯誤,但它給出輸出
- 3. 在Javascript控制檯中給出1,{a:1,b:2}給出錯誤的{a:1}打字行爲是什麼?
- 4. 「a && not b」給出語法錯誤?
- 5. *(a ++)給出錯誤但不是*(a + 1)??其中a是數組名稱?
- 6. 爲什麼值輸出爲相同A [0],&A,和* A?
- 7. 輸出給什麼
- 8. raw_input A = 10,如果A == 10給出false:Python
- 9. 爲什麼這個SCJP程序給出了輸出21,但我得到了20?
- 10. 當a = 1時,a,a ++,++ a的輸出是什麼;
- 11. 爲什麼輸出是「In foo,a = 7」?
- 12. 爲什麼「a」的輸出是-80?
- 13. Python:df.mean似乎給出了錯誤的輸出,爲什麼?
- 14. 爲什麼java7給出錯誤輸出的雙
- 15. 爲什麼程序給出錯誤的輸出?
- 16. 爲什麼這個C++程序給出錯誤的輸出?
- 17. 爲什麼編譯器給出錯誤?
- 18. 爲什麼當x(t)爲空時輸出是['a','b','a']。 Python
- 19. 爲什麼list :: element給出錯誤?
- 20. 爲什麼to_csv給出錯誤?
- 21. 爲什麼ghci輸出(Num a)=> a for:t 4而不是(Ord a)=> a?
- 22. 爲什麼Tomcat給出403錯誤?
- 23. 錯誤的輸出,但爲什麼?
- 24. iptables給出輸入/輸出錯誤
- 25. 爲什麼swap(&a ++,&b ++)給出錯誤「一元中的無效左值&&」?
- 26. 爲什麼程序給出錯誤?
- 27. 爲什麼sopln()給出錯誤?
- 28. 爲什麼會給出錯誤?
- 29. 爲什麼數組給出錯誤?
- 30. 爲什麼mcrypt_encrypt會給出錯誤?
的Bleh。我接近投票錯誤的原因。我應該欺騙了這個https://stackoverflow.com/questions/4361553/what-is-the-difference-between-public-private-and-protected – Machavity
感謝您的幫助 –