Heim  >  Artikel  >  Backend-Entwicklung  >  学习php 类,遇到一个基础有关问题,求好心人解答

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

WBOY
WBOYOriginal
2016-06-13 12:00:43765Durchsuche

学习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 />
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn