this y self en PHP
this
y self
son propiedades de los componentes de la Programación Orientada a Objetos (POO). OOP es una característica de componente de PHP como un procedimiento de programación en lugar de programación procedimental, donde escribimos funciones que realizan operaciones de datos.
Con OOP, podemos crear objetos que tienen tanto datos como funciones (métodos).
Sin embargo, OOP proporciona una forma más rápida y completa de codificar en cualquier idioma que lo admita, incluido PHP. Ciertas funciones o propiedades pueden ser complicadas, como this
y self
, y pueden hacer que el uso de OOP no sea divertido.
Este artículo discutirá cómo this
y self
son diferentes y cómo usarlos en PHP.
POO en PHP
OOP proporciona una estructura clara para sus programas PHP y le permite seguir el popular principio No se repita
.
Las clases y los métodos son una gran parte de la programación orientada a objetos en PHP y se crean fácilmente con el siguiente fragmento de código.
<?php
class Good {
public $propertyOne;
public $propertyTwo;
private $propertyThree;
function methodOne($propertyOne) {
//
}
}
?>
La $propertyOne
, $propertyTwo
, $propertyThree
son propiedades de la clase Good
y methodOne()
es un método.
Podemos crear objetos, el objetivo completo de OOP y el motivo de las clases y métodos, utilizando este fragmento de código.
$goodOne = new Good();
this
y self
en PHP
Para expandir el código actual, podemos crear un método para establecer el $propertyOne
de la clase Good
.
class Good {
//...
function setGoodName($propertyOne) {
$this->propertyOne = $propertyOne;
}
function showGoodName() {
return $this->propertyOne;
}
}
La palabra clave $this
se refiere al objeto actual y solo está disponible dentro de los métodos dentro de una clase. Entonces, si queremos usar $this
en nuestro código PHP, debe estar dentro de un método dentro de nuestra clase.
En el caso del fragmento de código, la palabra clave $this
apunta al objeto actual para permitirnos llamar a $propertyOne
dentro de la clase Good
.
Hagamos uso de los métodos que hemos creado.
$book = new Good();
$book->setGoodName("PHP for Dummies");
echo $book->showGoodName();
El resultado del fragmento de código se encuentra a continuación.
PHP for Dummies
Ampliemos nuestro código PHP aún más y agreguemos una propiedad a la clase Good
sobre el almacén estático Name
, hagámoslo privado y devolvamos la propiedad a un constructor.
class Good {
//...
private static $storeName = "JK Book Store";
function __construct()
{
return self::$storeName;
}
//...
}
La palabra clave self
se refiere a la clase actual y nos permite acceder a variables estáticas y de clase como en el fragmento de código anterior. La palabra clave self
utiliza el operador de resolución de alcance ::
para acceder o referirse a miembros de clase estáticos.
Por lo tanto, una gran diferencia entre self
y $this
es que self
accede a variables o métodos estáticos o de clase y $this
accede a variables y métodos no estáticos y de objeto.
Entonces, cuando trabaje con programación orientada a objetos, sepa que usamos $this
dentro de objetos (instancia de una clase) y self
para clases y propiedades estáticas.
Código fuente completo:
<?php
class Good {
// properties
public $propertyOne;
public $propertyTwo;
private $propertyThree;
private static $storeName = "JK Book Store";
// methods
function __construct()
{
return self::$storeName;
}
function setGoodName($propertyOne) {
$this->propertyOne = $propertyOne;
}
function showGoodName() {
return $this->propertyOne;
}
}
// creating a object
$book = new Good();
$book->setGoodName("PHP for Dummies");
echo $book->showGoodName();
?>
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedIn