La palabra clave self se usa para referirse a la clase actual dentro del alcance de esa clase solamente, mientras que $this se usa para referirse a las variables miembro y la función para una instancia particular de una clase.
operador self: el operador self representa la clase actual y, por lo tanto, se usa para acceder a variables de clase o variables estáticas porque estos miembros pertenecen a una clase en lugar del objeto de esa clase.
Sintaxis:
self::$static_member
Operador $this: $this, como sugiere el signo ‘$’, es un objeto. $this representa el objeto actual de una clase. Se utiliza para acceder a miembros no estáticos de una clase.
Sintaxis:
$that->$non_static_member;
Cuándo usar self sobre $this en PHP :
Ejemplo:
PHP
<?php class StudentDetail{ public $name; public static $age; public function getName() { return $this->name; } public static function getAge() { return self::$age; } public function getStudentAge() { return self::getAge(); } } $obj = new StudentDetail(); $obj->name = "GFG"; StudentDetail::$age = "18"; echo "Name : " .$obj->getName()."\xA"; echo "Age : " .StudentDetail::getStudentAge(); ?>
Name : GFG Age : 18
Diferencia entre self y $this:
uno mismo |
$esto |
La palabra clave self no está precedida por ningún símbolo , podemos usarla tal como está. | esta palabra clave debe ir precedida de un símbolo $ siempre que se refiera a los miembros de la clase. |
Para acceder a las variables y métodos de clase, se utiliza un operador de resolución de alcance. | Para acceder a las variables y métodos de clase, se utiliza un operador de flecha ( -> ). |
La palabra clave self se utiliza para acceder a los miembros estáticos de la clase presentes en el programa. | $this se usa para acceder a los miembros no estáticos de la clase presente en el programa. |
La palabra clave self se refiere a los miembros de la clase, pero no apunta a ningún objeto particular de la clase. | $this podría referirse a las variables miembro y la función para una instancia seleccionada de la clase. |
Publicación traducida automáticamente
Artículo escrito por talktoosaurabh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA