ホームページ >バックエンド開発 >PHPチュートリアル >PHP クラスを学習しているのですが、基本的な問題が発生しました。誰かに答えてください。

PHP クラスを学習しているのですが、基本的な問題が発生しました。誰かに答えてください。

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-23 13:54:51871ブラウズ

コードは以下に示すとおりです。青の実行では 1 が表示され、赤では 6 が表示されます。必要なのは 6 を表示することです。

bbb() の aaa() で $c を使用するにはどうすればよいですか?赤枠内の方法のみでしょうか? (めんどくさい)
赤枠のメソッドを使わないけど、aaa()には$cなどの変数がたくさんあって、これらの変数をbbb()で使う必要がある場合はどうすればいいでしょうか?


ディスカッションへの返信 (解決策)

これは関数パラメータの受け渡しの問題です

関数 bbb(){} が宣言時に受信パラメータを指定していない場合、たとえ関数 bbb(){} が宣言時にパラメータを渡しても、 call it いくら入力しても無駄で、常に 1 である $c が返されます。これを行うには、関数パラメータを指定する必要があります。

bbb メソッド内のこの文
$c = $c + 1;
Notice: Unknown variable: c 警告が表示されます ($c は、定義されていない場合は値を受け取ります)
E_NOTICE をブロックしましたが、レベルのエラーメッセージが表示されますが、問題がないわけではありません。ここでの全体的な状況には影響しませんが、

class ceshi {  public function aaa($a) {    $this->c = $a;    $r = $this->bbb();    echo $r;  }  public function bbb() {    $c = $this->c + 1;    return $c;  }}$xyz = new ceshi;$xyz->aaa(5);

これにより 6 が出力されます

//使用类的属性class ceshi {private $c;  public function aaa($a) {    $this->c = $a;    echo $this->bbb();  }  public function bbb() {    return $this->c + 1;  }}$xyz = new ceshi;$xyz->aaa(5);

??値を使用するだけです。

private $c; 内の任意の関数で使用できます。

class ceshi{	private $c;	public function aaa($a){		$this->c = $a;		$k = $this->bbb();		echo $k;	}	public function bbb(){		$this->c = $this->c + 1;		return $this->c;	}}$xyz = new ceshi;$xyz->aaa(5);

変数のスコープ問題、4階のメソッドが使えます

皆さんありがとうございます!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。