Método estático en PHP OOP

S

En este tutorial. aprenderemos el método estático en PHP.

¿Qué son los métodos estáticos en PHP?

  • Los métodos estáticos se crean usando estático palabra clave.
  • Los métodos estáticos de una clase se llaman directamente. Significa que no necesitamos crear la instancia de la clase para llamar a su método estático.
  • Una clase puede contener métodos estáticos y no estáticos.
  • Para llamar al método estático de una clase, usamos el operador de resolución de alcance ::

Sintaxis del método estático en PHP

<?php
class ClassName {
  public static function method() {
    echo "Hello from PHP!";
  }
}
?>

Sintaxis para llamar al método estático

ClassName::staticMethod();

Ejemplo

<?php
class Example {
  public static function greetings() {
    echo "Hello from PHP!";
  }
}

// Calling static method
Example::greetings();
?>
  • En el ejemplo anterior, creamos una clase que contiene un método estático.
  • Llamamos al método estático de esta clase fuera usando el método de resolución de alcance.

Llamando al método estático dentro de la clase – PHP

  • En PHP, yo La palabra clave permite llamar a su propio método estático dentro de la clase. Mire el siguiente ejemplo en el que creamos una clase con método estático y la llamamos dentro del constructor de la clase.
  • yo::methodName() es la sintaxis general para llamar al método estático dentro de la clase.
<?php
class Example {
  public static function greetings() {
    echo "Hello from PHP!";
  }

  public function __construct() {
    self::greetings();
  }
}

new Example();
?>

Llamar al método estático dentro de otra clase – PHP

Es muy interesante usar el caso de métodos estáticos, que podemos llamar a un método estático público dentro de otra clase. Recuerde, debe ser un método estático público.

<?php
class Example{
  public static function greetings() {
    echo "Hello from PHP!";
  }
}

class Example2{
  public function msg() {
    Example::greetings();
  }
}
?>

Llamar a un método estático en clase secundaria – PHP

En el caso de la herencia, podemos llamar al método estático de la clase principal dentro de la clase secundaria usando el método con el futuro bebé palabra clave. Mira el ejemplo de abajo.

<?php
class Example {
  protected static function getMessage() {
    return "Message from static method";
  }
}

class Child1 extends domain {
  public $name;
  public function __construct() {
    $this->name= parent::getMessage();
  }
}

$child1= new child1();
echo $child1-> name;
?>
  • En el ejemplo anterior, creamos una clase principal con algún método estático.
  • Creamos otra clase que extiende la clase padre.
  • Llame al método estático de la clase principal usando con el futuro bebé palabra clave seguida del nombre del método estático.

Nota: Como mencionamos en la sección anterior, llamar a un método estático dentro de otra clase requería que fuera público. Pero en el caso de llamar al método estático de la clase padre (herencia), el modificador de acceso al método estático puede ser público or protegido.

Diferencia entre métodos estáticos y no estáticos

Método estáticoMétodo no estático
Solo podemos acceder a las propiedades estáticas de la clase o de otra clase dentro del método estático.Podemos acceder tanto a las propiedades estáticas como no estáticas de la clase o de otra clase dentro del método no estático.
El método estático utiliza el enlace temprano o el enlace en tiempo de compilación.El método no estático utiliza enlaces dinámicos o de tiempo de ejecución.
Los métodos estáticos mantienen el estado durante la ejecución del programa, por lo que debido al enlace anticipado, otra clase no puede anularlos.Debido al enlace en tiempo de ejecución o al comportamiento dinámico del método no estático, podemos anularlos en otra clase.
La asignación de memoria en el método estático es más eficiente porque especifica un bloque de memoria dentro de la RAM una vez que se ejecuta el programa. Nunca vuelve a hacerlo hasta que finaliza el programa.Los métodos no estáticos son menos eficientes en la asignación de memoria debido al enlace dinámico. Cada vez que se llama al método no estático, asigna memoria y la desasigna después de que se completa la ejecución del método.
Método estático vs no estático

Referencia a la documentación oficial de PHP del método estático.

Agregar comentario

Red de tutores

Aprende PHP de la A a la Z