> 백엔드 개발 > PHP 튜토리얼 > 学习php 类,遇到一个基础有关问题,求好心人解答

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

WBOY
풀어 주다: 2016-06-13 12:00:43
원래의
830명이 탐색했습니다.

学习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 />
로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿