Función estática en PHP

En ciertos casos, es muy útil acceder a métodos y propiedades en términos de una clase en lugar de un objeto. Esto se puede hacer con la ayuda de la palabra clave estática . Cualquier método declarado como estático es accesible sin la creación de un objeto. Las funciones estáticas están asociadas con la clase, no con una instancia de la clase. Solo se les permite acceder a métodos estáticos y variables estáticas. Para agregar un método estático a la clase, se usa la palabra clave estática.

public static function test()
{
    // Method implementation
}

Se pueden invocar directamente fuera de la clase utilizando el operador de resolución de alcance (::) de la siguiente manera:

MyClass::test();

Ejemplo: Este ejemplo ilustra la función estática como contador.

<?php
/* Use static function as a counter */
  
class solution {
      
    static $count;
      
    public static function getCount() {
        return self::$count++;
    }
}
  
solution::$count = 1;
  
for($i = 0; $i < 5; ++$i) {
    echo 'The next value is: '. 
    solution::getCount() . "\n";
}
  
?>
Producción:

The next value is: 1
The next value is: 2
The next value is: 3
The next value is: 4
The next value is: 5

¿Cuándo definir métodos estáticos?
La palabra clave static se usa en el contexto de variables y métodos que son comunes a todos los objetos de la clase. Por lo tanto, cualquier lógica que pueda compartirse entre varias instancias de una clase debe extraerse y colocarse dentro del método estático. Los métodos estáticos de PHP generalmente se usan en clases que contienen métodos estáticos, a menudo llamados clases de utilidad de marcos PHP como Laravel y CakePHP.

A continuación se muestra el código PHP que muestra el uso de métodos estáticos.

Ejemplo: Este ejemplo ilustra el método estático en PHP.

<?php
/* Use of static method in PHP */
  
class A {
      
    public function test($var = "Hello World") {
        $this->var = $var;
        return $this->var;
    }
}
  
class B {
    public static function test($var) {
        $var = "This is static";
        return $var;
    }
}
  
// Creating Object of class A
$obj = new A();
  
echo $obj->test('This is non-static'); 
echo "\n";
echo B::test('This is non-static'); 
  
?>
Producción:

This is non-static
This is static

Sin embargo, un método estático no le permite definir dependencias explícitas e incluye variables globales en el código a las que se puede acceder desde cualquier lugar. Esto puede afectar la escalabilidad de una aplicación. Además, tendrá dificultades para realizar pruebas automatizadas en clases que contienen métodos estáticos. Por lo tanto, deben usarse para servicios públicos y no por razones de conveniencia.

PHP es un lenguaje de secuencias de comandos del lado del servidor diseñado específicamente para el desarrollo web. Puede aprender PHP desde cero siguiendo este tutorial de PHP y ejemplos de PHP .

Publicación traducida automáticamente

Artículo escrito por NAKUL MALHOTRA y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *