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

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

WBOY
WBOYOriginal
2016-06-13 12:00:43767browse

学习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 />
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn