ホームページ >バックエンド開発 >PHPチュートリアル >PHP クラスを学習しているのですが、基本的な問題が発生しました。誰かに答えてください。
コードは以下に示すとおりです。青の実行では 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);
//使用类的属性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階のメソッドが使えます
皆さんありがとうございます!