[請益] 物件繼承取得變數問題

看板PHP作者 (ChaN)時間13年前 (2012/10/18 16:04), 編輯推噓3(3014)
留言17則, 9人參與, 最新討論串1/1
<?php class a { var $name = 'david'; function changeName() { $this->name = 'phoebe'; } } class b extends a { function showName() { echo $this->name; } } $a = new a; $b = new b; $a->changeName(); echo $a->name . "<br>"; echo $b->showName(); // how to class b get name phoebe ?> http://pastie.org/5077531 我該怎麼在使用 class a 改變名稱之後,在 class b 取得改變後的內容呢 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.241.32.123

10/18 16:06, , 1F
你的 $a 跟 $b 是兩個不相關的變數...
10/18 16:06, 1F

10/18 16:29, , 2F
我知道,不知道有沒有什麼寫法是可以抓到 parent 的結果
10/18 16:29, 2F

10/18 18:44, , 3F
根本不可能好不好…歐巴馬是人跟你是台灣人有什麼關聯…
10/18 18:44, 3F

10/18 19:04, , 4F
同事說 singleton 好像有解,我研究一下
10/18 19:04, 4F

10/18 21:25, , 5F
你把a當成b的建構式參數丟進去好了=.=
10/18 21:25, 5F

10/19 05:53, , 6F
你要的是把所有物件寫成一個大物件 或通通寫成樹狀
10/19 05:53, 6F

10/19 05:53, , 7F
singleton是繞遠路 你完全搞錯方向了
10/19 05:53, 7F

10/19 12:20, , 8F
是說class還是object, 我都看不懂 -_-
10/19 12:20, 8F

10/19 14:02, , 9F
$b->changeName(); echo $b->showName(); 即可得結果?
10/19 14:02, 9F

10/20 00:56, , 10F
你改用封裝的方式吧
10/20 00:56, 10F

10/20 00:58, , 11F
A,B class 去實做showName 跟 changeName
10/20 00:58, 11F

10/20 00:59, , 12F
或是用工廠模式去初始化你要的東西
10/20 00:59, 12F

10/20 18:33, , 13F
同ChowMein, 我都看不懂在這弄 Class 還是 Object
10/20 18:33, 13F

10/21 10:16, , 14F
將變數換成static 的方式可以
10/21 10:16, 14F

10/21 10:18, , 15F
public static $name = 'david';
10/21 10:18, 15F

10/21 10:19, , 16F
內部使用變成 self::$name, 外部可以直接 a::$name
10/21 10:19, 16F

10/21 10:19, , 17F
可以查查 static 的用法
10/21 10:19, 17F
文章代碼(AID): #1GVxVu9A (PHP)
文章代碼(AID): #1GVxVu9A (PHP)