代碼如,藍色執行顯示1,紅色顯示6 ,需要的是顯示6;
請問bbb()中怎麼才能使用aaa()中的$c呢?只有通過紅色框中那方法嗎?(感覺好麻煩)
如果不用紅色框中那樣的方法,但aaa()中有很多個$c這樣的變數,這些變數在bbb()中需要用到,該怎麼辦?
回複討論(解決方案)
你這個是函數的傳參問題
如果 function bbb(){} 聲明的時候沒有指定傳入的參數的話,那就算你調用的時候,傳入再多的也是無用的,總是返回$c 也就是1的。 你必須得指定函數參數才能行。
你的 bbb 方法中的這句
$c = $c + 1;
會有一個 Notice: Undefined variable: c 警告 ($c 沒有定義就取值了)
雖然你屏蔽了 E_NOTICE 層級的錯誤資訊,但並不表示不存在問題。儘管在這裡無礙大局
class ceshi { public function aaa($a) { $this->c = $a; $r = $this->bbb(); echo $r; } public function bbb() { $c = $this->c + 1; return $c; }}$xyz = new ceshi;$xyz->aaa(5);
這樣就輸出 6 了
//使用類的屬性class ceshi {private $c; public function aaa($a) { $this->c = $a; echo $this->bbb(); } public function bbb() { return $this->c + 1; }}$xyz = new ceshi;$xyz->aaa(5);
使用??性?量就可以了。
private $c; 再?中任何function都可以?用到。
class ceshi{private $c;public function aaa($a){$this->c = $a;$k = $this->bbb();echo $k;}public function bbb(){$this->c = $this->c + 1;return $this->c;}}$xyz = new ceshi;$xyz->aaa(5);
變數的範圍問題,4樓的方法就可以用了哈
感謝樓上各位!