学习php 类,遇到一个基础问题,求好心人解答。
本帖最后由 zxm_99 于 2014-06-23 23:16:05 编辑 代码如下图,蓝色执行显示1,红色显示6 ,需要的是显示6;
请问bbb()中怎么才能使用aaa()中的$c呢?只有通过红色框中那方法吗?(感觉好麻烦)
如果不用红色框中那样的方法,但aaa()中有很多个$c这样的变量,这些变量在bbb()中需要用到,该怎么办?------解决方案--------------------你的 bbb 方法中的这句
$c = $c + 1;
会有一个 Notice: Undefined variable: c 警告 ($c 没有定义就取值了)
虽然你屏蔽了 E_NOTICE 级别的错误信息,但并不表示不存在问题。尽管在这里无碍大局
class ceshi {<br /> public function aaa($a) {<br /> $this->c = $a;<br /> $r = $this->bbb();<br /> echo $r;<br /> }<br /> public function bbb() {<br /> $c = $this->c + 1;<br /> return $c;<br /> }<br />}<br />$xyz = new ceshi;<br />$xyz->aaa(5);
Salin selepas log masuk
这样就输出 6 了
------解决方案--------------------<br /><br />//使用类的属性<br />class ceshi {<br />private $c;<br /> public function aaa($a) {<br /> $this->c = $a;<br /> echo $this->bbb();<br /> }<br /> public function bbb() {<br /> return $this->c + 1;<br /> }<br />}<br />$xyz = new ceshi;<br />$xyz->aaa(5);<br /><br /><br />
Salin selepas log masuk
------解决方案--------------------使用類屬性變量就可以了。
private $c; 再類中任何function都可以調用到。
<br />class ceshi{<br /><br /> private $c;<br /><br /> public function aaa($a){<br /> $this->c = $a;<br /> $k = $this->bbb();<br /> echo $k;<br /> }<br /><br /> public function bbb(){<br /> $this->c = $this->c + 1;<br /> return $this->c;<br /> }<br />}<br /><br />$xyz = new ceshi;<br />$xyz->aaa(5);<br />
Salin selepas log masuk