29

PHP オブジェクトのプロパティにアクセスするにはどうすればよいですか?

また、オブジェクトのプロパティへのアクセスと の違いは何 $this->$property1ですか$this->property1?

使用しようとする$this->$property1と、次のエラーが表示されます。

「PHP: 空のプロパティにアクセスできません」.

オブジェクト プロパティに関するPHP のドキュメントには、これについて言及しているコメントが 1 つありますが、そのコメントは実際には詳細に説明していません。

4

3 に答える 3

28
  1. $property1// 特定の変数
  2. $this->property1// 特定の属性

クラスの一般的な使用法は、それ以外の場合は、任意の値を取ることができる"$"という変数を呼び出すことです。$property1

例:

class X {
  public $property1 = 'Value 1';
  public $property2 = 'Value 2';
}
$property1 = 'property2';  //Name of attribute 2
$x_object = new X();
echo $x_object->property1; //Return 'Value 1'
echo $x_object->$property1; //Return 'Value 2'
于 2012-09-24T18:54:48.783 に答える
14

$this->property1意味:

オブジェクトを使用して、このオブジェクトにバインドされた変数 property1 を取得します

$this->$property1意味:

文字列 $property1 を評価し、その結果を使用して、このオブジェクトにバインドされた $property1 の結果によって名前が付けられた変数を取得します

于 2012-09-24T18:43:56.123 に答える
3

property1は文字列$property1ですが、 は変数です。$this->$property1そのため、PHPにアクセスする$property1と、指定された変数の内容が検索されます。(おそらく) 存在しないため、空なので、Cannot access empty propertyエラーが発生します。

于 2012-09-24T18:46:02.103 に答える