この質問が以前に尋ねられた場合は、私には失礼ですが、満足のいく結果は得られませんでした。
私はPHP(C++バックグラウンドから来ている)を学んでおり、次のあいまいさに遭遇しました。全く同じコード作業の次の2ビット:
class A
{
public $myInteger;
public function __get($name)
{
return $this->$name;
}
public function __set($name, $value)
{
$this->$name = $value;
}
}
と
class A
{
public $myInteger;
public function __get($name)
{
return $this->name;
}
public function __set($name, $value)
{
$this->name = $value;
}
}
クラスメソッド$this->$name
と$this->name
でまったく同じ機能を有しています。私はそれがのみ作品myInteger
前には$
がない場合、次のコードを追加した場合ことを考慮する場合は特に、
$myA = new A();
$myA->myInteger = 5;
$hereInt = $myA->myInteger;
echo "<p>" . $hereInt . "</p>";
を少し混乱これを見つけることです。誰かがこの背後にある根拠を説明してもらえますか?
両方のクラスをクラスAにすることを意味しましたか? – Shrinath
はい;もちろん、コードの2つのチャンクのうちの1つだけがいつでも使用されます。 –
これは明確に定義されており、その背後にあいまいさはありません。 – BoltClock