El self y this son dos operadores diferentes que se utilizan para representar la clase actual y el objeto actual, respectivamente. self se usa para acceder a variables o métodos estáticos o de clase y esto se usa para acceder a variables o métodos no estáticos o de objeto.
Por lo tanto, use self cuando sea necesario acceder a algo que pertenece a una clase y use $this cuando sea necesario acceder a una propiedad que pertenezca al objeto de la clase.
operador self: el operador self representa la clase actual y, por lo tanto, se utiliza 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
Ejemplo 1: Este es el ejemplo básico que muestra el uso del auto operador.
php
<?php class GFG { private static $static_member = "GeeksForGeeks"; function __construct() { echo self::$static_member; // Accessing static variable } } new GFG(); ?>
Producción:
GeeksForGeeks
Ejemplo 2: Este ejemplo es una demostración de la explotación del comportamiento polimórfico en php usando self.
php
<?php class GFG { function print() { echo 'Parent Class'; } function bar() { self::print(); } } class Child extends GFG { function print() { echo 'Child Class'; } } $parent = new Child(); $parent->bar(); ?>
Producción:
Parent Class:
Aquí el método de la clase principal se ejecuta porque el operador self representa la clase, por lo que vemos que el método de la clase principal es solo el método de la clase principal.
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;
Ejemplo 1: Este es el ejemplo básico que muestra el uso del operador $this.
php
<?php class GFG { private $non_static_member = "GeeksForGeeks"; function __construct() { echo $this->$non_static_member; // accessing non-static variable } } new GFG(); ?>
Producción:
GeeksForGeeks
Ejemplo 2: Este ejemplo es una demostración del comportamiento polimórfico en php usando self.
php
<?php class GFG { function print() { echo 'Parent Class'; } function bar() { $this->print(); } } class Child extends GFG { function print() { echo 'Child Class'; } } $parent = new Child(); $parent->bar(); ?>
Producción:
Child Class
Aquí, no hay referencia a ninguna clase y el objeto que apunta a la clase secundaria está llamando al método definido en la clase secundaria. Este es un ejemplo de polimorfismo dinámico en PHP.
Publicación traducida automáticamente
Artículo escrito por piyush25pv y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA