0

$this->id と $id の違いは何ですか?

class Test{
 public $id;

 function Test(){
  $this->id = 1;
 }
}

===

class Test{
 public $id;

 function test(){
  $id = 1;
 }
}

他のクラスから変数を取得する方法は?

class TestA{
 public $test;

 function TestA(){
  $this->test = new Test();
  echo $this->test->id;
 }
}
4

4 に答える 4

10

phpある意味では機能しませんが、C++機能JavaC#ます。

PHP では、常に$this参照と演算子を使用->してインスタンス変数にアクセスする必要があります。

したがって、最初のコード1はインスタンスidプロパティに割り当てられ、2 番目のコードで1はローカル$id変数に割り当てられます。

于 2012-12-17T09:57:19.203 に答える
5

例に違いはありませんが$this->variable_name、メソッド内に同じ名前の内部変数がある場合に使用すると便利です。

class test{
 public $id;

 function test($id){
  $id = 1;        // method parameter
  $this->id = 2;  // object member
}
于 2012-12-17T09:57:13.537 に答える
0

あなたのサンプルでは、​​実際には違いはありません。で修飾することによっても、メンバー変数にいつでもアクセスできます。$thisすべてのメンバー変数は に属し$thisます。MarinJuraszek が言うように、範囲を考慮することが重要です。

于 2012-12-17T09:57:46.653 に答える
0

$this->idオブジェクトを介してクラス メソッドでアクセスできるクラス プロパティを参照します。

$id作成されたローカルスコープでアクセスできる変数のみです。

于 2012-12-17T09:58:22.540 に答える