台灣最大程式設計社群網站
線上人數
751
 
會員總數:241868
討論主題:187137
歡迎您免費加入會員
討論區列表 >> PHP >> php Class調用問題請教
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
php Class調用問題請教
價值 : 50 QP  點閱數:113 回應數:3

樓主

吳宗叡
門外漢
0 1
14 1
發送站內信

class Controller{
function index(){
$tool = new Tool();
$tool->setting('123');
$tool->setting('456');
$tool->show();
}
}

class Tool{
public $a = ''; //這是不可行的
public setting($data){
$a = $a.$data;
}
public show(){
echo $a;
}
}

//理想結果為 123456

以上是理想的寫法,但是是不可行的,請問,除了把$a寫在class外面外,
有辦法達到這樣的效果嗎。

搜尋相關Tags的文章: [ php ] ,
本篇文章發表於2018-01-23 23:06
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

clouding
捐贈 VP 給 clouding 檢舉此回應


這是可行的喔,只是你寫錯了

我想你應該是要這種效果吧,要用 $this關鍵字 去抓取 class 自身屬性



本篇文章回覆於2018-01-24 00:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Rax
檢舉此回應
感謝clouding 的回答^^,
我認為是我的問題沒有表達完整,我想問的其實是從一個class調用另外一個class的方法後,還要能夠存值這件事。
後來我發現居然是因為漏掉了$this,補上後就可以了,另外一開始的問題,的確因為打太急有很多錯誤,在此補上較完整而且可以使用的做法。

class Controller{
public function index(){
$tool = new Tool();
$tool->setting('123');
$tool->setting('456');
echo $tool->show();
}
}

class Tool{
public $a = ''; //這是不可行的
public function setting($data){
$this->a = $this->a.$data;
}
public function show(){
return $this->a;
}
}

$controller = new Controller();
$controller->index();
本篇文章回覆於2018-01-24 01:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
請先善用程式標簽。如#1那樣子。方便別人好讀你的程式碼也是一種禮貌。

一般來說,物件的設計方式。盡量不要物件內再請求物件的方式處理。
可以的話規劃成繼承性的方式會比較好。
本篇文章回覆於2018-01-24 13:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.