>  기사  >  백엔드 개발  >  学习php 类,遇到一个基础有关问题,求好心人解答

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

WBOY
WBOY원래의
2016-06-13 12:00:43765검색

学习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 />
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.