Eventuali duplicati:
PHP: self vs this
Ciao, Potrebbe aiutarmi a capire il significato del nome della variabile PHP $this
?
Grazie per il vostro aiuto.
Eventuali duplicati:
PHP: self vs this
Ciao, Potrebbe aiutarmi a capire il significato del nome della variabile PHP $this
?
Grazie per il vostro aiuto.
$this
si riferisce alla classe ci si trova.
Per esempio
Class Car {
function test() {
return "Test function called";
}
function another_test() {
echo $this->test(); // This will echo "Test function called";
}
}
Spero che questo aiuti.
È un modo di fare riferimento a se stesso ... o chiamare metodi o leggere le variabili da se stesso. – jodm
in realtà, self si riferisce alla classe corrente in cui ci si trova. $ Si riferisce all'istanza dell'oggetto corrente della classe in cui ci si trova. –
Non eseguirà il test "echo" chiamato "poiché si accede al' test' variabile membro (che non esiste) al contrario del metodo 'test()'. Dovresti cambiarlo in 'echo $ this-> test()' ... – ircmaxell
si potrebbe desiderare di avere uno sguardo a delle risposte in In PHP5, what is the difference between using self and $this? When is each appropriate?
In sostanza, $this
si riferisce all'oggetto corrente.
$this
è una variabile protetta che viene utilizzata all'interno di un oggetto, $this
consente di accedere a un file di classe internamente.
Esempio
Class Xela
{
var age; //Point 1
public function __construct($age)
{
$this->setAge($age); //setAge is called by $this internally so the private method will be run
}
private function setAge($age)
{
$this->age = $age; //$this->age is the variable set at point 1
}
}
suo fondamentalmente un problema di portata variabile, $this
è consentito solo all'interno di un oggetto che è stato avviato e si riferisce a tale oggetto e le sue genitori solo, è possibile eseguire i metodi privati e impostare le variabili private in cui come fuori dal campo di applicazione non è possibile.
anche la parola self
è molto simile a parte si riferisce a metodi statici all'interno classe, statica in pratica significa che non puoi utilizzare $this
come non un oggetto ancora, è necessario utilizzare self::setAge();
e se tale metodo setAge
è dichiarato statico allora non si può chiamare da un istante di tale oggetto/object
Alcuni link per voi per iniziare:
Mentre capisco che stai spiegando a un nuovo arrivato OOP, per favore non fare riferimento agli oggetti come classi. $ questo è usato per riferirsi a proprietà e metodi dell'oggetto, mentre self :: è usato per riferirsi a proprietà e metodi di classe. Penso che sia importante spiegare la differenza tra i due. – Craige
Eventuali duplicati: http://stackoverflow.com/questions/151969/php-self-vs-this. Inoltre, per favore non essere troppo carino nelle domande. ;) – birryree
Congratulazioni per ampliare le tue conoscenze all'età di 12 anni! Ma dal momento che non è pertinente alla domanda, potresti modificare la domanda per rimuoverla? –
Sembra che le persone su Stack Overflow non sappiano cosa sia "I am 12 years and what is this". – JAL