Rumah  >  Artikel  >  pembangunan bahagian belakang  >  学习php 类,遇到一个基础有关问题,求好心人解答

学习php 类,遇到一个基础有关问题,求好心人解答

WBOY
WBOYasal
2016-06-13 12:00:43767semak imbas

学习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);

这样就输出 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 />

------解决方案--------------------
使用類屬性變量就可以了。

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 />
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn