0

私はphpクラスを学ぼうとしています。クラス内でどのプロパティを宣言する必要があるかについて混乱しています。状況を理解するために簡単な例を挙げています。

class main{
var $a=5;
var $b;
 function add($c){
 return $this->a + $this->b + $c;
 }
}

$load = new main();
$load-> $b=10;
echo $load->add(20); //will output 35

上記の場合、クラス内でプロパティ $c を宣言していないことに注意してください。呼び出し $load->add(20) から直接アクセスしており、うまく機能しています。私の質問は、これは機能していますが、正しい方法ですか、この場合 $c プロパティを宣言する必要がありますか? NB: oop のマジック メソッドの設定により、これが機能している可能性がありますが、よくわかりません。

4

1 に答える 1

0

クラス名 (main) の後の括弧と var $b の前の $、最後から 2 番目の行の b の前の $ など、いくつかのエラーがあります。

とにかく、ここに魔法はありません。$a$b変数 (クラス属性) を使用してクラスを宣言しました。次に、メソッド add を作成しました。このメソッドは、ローカルパラメーター ( $c) を受け取り、それを現在のオブジェクトの属性 $aおよび $b に追加します。

メソッドの実行後、メソッドに渡され、 に割り当てられた値は失われ$cます。

あなたの例は正しいですし$c、このように使いたいだけなら宣言する必要はありません。逆に、別のメソッドで使用する場合など、オブジェクト属性として使用する場合は、他のクラス属性の中で宣言する必要があります。この場合、最初にクラスで宣言してから、次のように使用する必要があります$this->c

例えば:

class main {
   ...
   var $c;

   function test($c){
     $this->c = $c;
     ...
   }
}

$this->c$cは 2 つの異なる変数であることに注意してください:$c前に述べたように、メソッドのスコープ内にあるだけです。

于 2013-06-27T16:40:50.950 に答える