の使用する必要があります。
$this->name
クラスによって定義され、オブジェクト内でグローバルにアクセス可能ですされているオブジェクトのプロパティです。
$name
クラスメソッドの内部で使用する変数であり、唯一のオブジェクトメソッド(関数)非常に簡単に
内でローカルにアクセスできます。
class myClass{
private $name = "record.log";
function myMethod(){
$name = 'this exists only in the method myMethod()';
$this->name; // this contains the 'record.log' string
}
}
クラスの外からは、内に定義された変数$name
にアクセスすることはできませんオブジェクト。
あなただけのクラスではなくオブジェクト名を使用して、それを呼び出す必要があり、オブジェクトの外部から定義されたプロパティは$ nameにアクセスすることができます:あなたが直接アクセスしてプライベートとしてオブジェクトのプロパティを定義ししかし
$obj = new myClass();
$log_file = $obj->name; // this would contain the string 'record.log'
オブジェクトの外側から制限されます。それにアクセスできるようにするには、プライベートプロパティへの読み書きを処理するgetter/setterメソッドを定義する必要があります。
// add to the class methods
public function getName(){
return $this->name;
}
public function setName($value){
// do some validation of the value first
//...
// then assign the value
$this->name = $value;
}
だから今、あなたはステートメントを使用してオブジェクトの外部からオブジェクトのプロパティ$名にアクセスすることができます
echo $obj->getName(); // prints record.log
$obj->setName('new.log');
echo $obj->getName(); // prints new.log
出典
2017-12-15 13:10:26
ino
http://php.net/manual/en/language.oop5.basic.php –
これはクラスではない –
$ nameは、関数のスコープ内で変数を検索します。クラスの中で関数の外で定義された変数を使用する場合は、$ this-> nameを使用してアクセスする必要があります。 –