In OOP:
$this->name
ist Eigenschaft des Objekts, die durch die Klasse definiert ist und zugänglich ist global innerhalb des Objekts.
$name
ist variabel innerhalb der Klassenmethode verwendet und ist zugänglich nur lokal innerhalb der Objektmethode (eine Funktion)
Ganz kurz:
class myClass{
private $name = "record.log";
function myMethod(){
$name = 'this exists only in the method myMethod()';
$this->name; // this contains the 'record.log' string
}
}
Von außerhalb der Klasse, die Sie nicht die Variable $name
innerhalb eines definierten Zugriff Objekt.
Sie können nur die Eigenschaft $ name in der Klasse definiert zugreifen, sondern von außerhalb des Objekts, das Sie es mit dem Objektnamen nennen muss:
$obj = new myClass();
$log_file = $obj->name; // this would contain the string 'record.log'
auch immer Sie die Objekteigenschaft als privat definiert so den direkten Zugriff wird von außerhalb des Objekts eingeschränkt. Um darauf zugreifen zu können, müssen Sie Getter/Setter eine Methode definieren, die das Lesen/Schreiben in private Eigenschaften übernimmt.
// 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;
}
So, jetzt können Sie die Objekt-Eigenschaft $ name von außerhalb Zugriff des Objekts Anweisungen mit:
echo $obj->getName(); // prints record.log
$obj->setName('new.log');
echo $obj->getName(); // prints new.log
http://php.net/manual/en/language.oop5.basic.php –
Das ist keine Klasse –
$ name wird im Rahmen der Funktion nach der Variable suchen. Wenn Sie die außerhalb einer Funktion in einer Klasse definierte Variable verwenden möchten, müssen Sie mit $ this-> name darauf zugreifen. –