Variables estáticas en PHP

Subodh Poudel 30 enero 2023
  1. Variables estáticas en PHP
  2. Use la palabra clave self para acceder a la variable estática dentro de la clase en PHP
  3. Use el nombre de la clase para acceder a la variable estática fuera de la clase en PHP
  4. Acceda a la variable estática dentro del método estático
Variables estáticas en PHP

Este artículo presentará las variables estáticas de PHP, explicará sus características y demostrará varias formas de acceder a las variables estáticas en un contexto orientado a objetos.

Variables estáticas en PHP

Las variables en un programa se usan para almacenar datos o valores que se pueden usar más tarde en un programa. Una variable puede almacenar caracteres, valores numéricos, cadenas, direcciones de memoria, etc.

En PHP, declaramos o almacenamos valores usando el signo de dólar $ seguido del nombre de las variables.

Ejemplo:

$name = "John Doe";
$marks = 90;

Asimismo, una variable estática es una variable cuyo alcance no termina fuera de la función. El alcance de una variable no estática se destruye después de que la función sale.

Podemos declarar una variable estática usando la palabra clave static.

Ejemplo:

static $name = "John Doe";
static $marks = 90;`

Veamos la propiedad de la variable estática con la siguiente demostración.

Ejemplo de código:

function total_marks () {
    static $marks = 90;
    $marks ++;
    print $marks;
    print "<br />";
}
total_marks();
total_marks();
total_marks();

Producción :

91
92
93

El código anterior muestra que la variable estática conserva su valor incluso después de que finaliza la función. Hay tres llamadas diferentes a la función total_marks(), pero el valor de $marks no se destruye incluso después de salir de la función.

El valor no se restablece a 90 cuando se realiza la segunda y la tercera llamada de función. Sigue aumentando a medida que se conserva el valor anterior.

Apliquemos el ejemplo anterior a una variable no estática.

Código de ejemplo:

function total_marks () {
    $marks = 90;
    $marks ++;
    print $marks;
    print "<br />";
}
total_marks();
total_marks();
total_marks();

Producción :

91
91
91

El valor de la variable $marks se restablece a 90 cada vez que se realiza la llamada a la función. Muestra que la variable no estática no conserva su valor anterior.

Use la palabra clave self para acceder a la variable estática dentro de la clase en PHP

Podemos usar la palabra clave self para acceder a una variable estática dentro de una clase. Se usa un doble punto :: después de la palabra clave self y la variable estática sigue justo después.

La palabra clave this no funciona para variables estáticas ya que la variable estática no pertenece a un objeto.

Por ejemplo, en una clase, Estudiante crea una variable estática $nombre y asigna un valor John Doe. Dentro de una función, who() usa la palabra clave self con dos puntos dobles para acceder a la variable estática $name, y por último, invoca la función con un objeto de la clase.

Código de ejemplo:

class Student {
    public static $name = "John Doe";
    public function who() {
    echo self::$name;
    }
}
$obj = new Student;
$obj->who();

Producción :

John Doe

Use el nombre de la clase para acceder a la variable estática fuera de la clase en PHP

Se puede acceder a las variables estáticas directamente sin crear una instancia de la clase. Para acceder a una variable estática fuera de la clase, podemos escribir el nombre de la clase seguido de dos puntos (::) seguido del nombre de la variable estática.

Por ejemplo, dentro de una clase, Estudiante crea una variable estática como en el primer método. A continuación, escribe Estudiante:$nombre fuera de la clase para acceder a la variable estática.

Código de ejemplo:

class Student {
    public static $name = "John Doe";
}
echo Student::$name;

Producción :

John Doe

Se accede a la variable estática $name fuera de la clase usando el nombre de la clase.

Acceda a la variable estática dentro del método estático

En el primer ejemplo, aprendimos a acceder a variables estáticas dentro de una clase. Allí hemos accedido a una variable estática dentro de un método no estático.

Esta sección colocará la variable estática dentro de un método estático y accederá a ella. Podemos escribir la palabra clave static antes de la función para crear un método estático, acceder a funciones estáticas sin crear una instancia de la clase y usar el nombre de la clase para llamar al método estático.

Código de ejemplo:

class Student {
    public static $name = "John Doe";
    public static function who() {
    echo self::$name;
    }
}
Student::who();

Producción :

John Doe

Aquí hemos accedido al método estático who() con la clase Student usando el operador ::. Usamos la palabra clave self para acceder a la variable estática dentro del método.

Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn