22 - Métodos estáticos de una clase (static)


Un método estático pertenece a la clase pero no puede acceder a los atributos de una instancia. La característica fundamental es que un método estático se puede llamar sin tener que crear un objeto de dicha clase.

Un método estático es lo más parecido a una función de un lenguaje estructurado. Solo que se lo encapsula dentro de una clase.

Confeccionaremos una clase Cadena que tenga una conjunto de métodos estáticos:

<html>
<head>
<title>Pruebas</title>
</head>
<body>
<?php
class Cadena {
  public static function largo($cad)
  {
    return strlen($cad);
  }
  public static function mayusculas($cad)
  {
    return strtoupper($cad);
  }
  public static function minusculas($cad)
  {
    return strtolower($cad);
  }
}

$c='Hola';
echo 'Cadena original:'.$c;
echo '<br>';
echo 'Largo:'.Cadena::largo($c);
echo '<br>';
echo 'Toda en mayúsculas:'.Cadena::mayusculas($c);
echo '<br>';
echo 'Toda en minúsculas:'.Cadena::minusculas($c);
?>
</body>
</html>

Para definir un método estático utilizamos la palabra clave static luego del modificador de acceso al método:

  public static function largo($cad)
  {
    return strlen($cad);
  }

Hay que tener en cuenta que un método estático no puede acceder a los atributos de la clase, ya que un método estático normalmente se lo llama sin crear un objeto de dicha clase:

echo 'Largo:'.Cadena::largo($c);

La sintaxis para llamar un método estático como vemos es distinta a la llamada de métodos de un objeto. Indicamos primero el nombre de la clase, luego el operador '::' y por último indicamos en nombre del método estático a llamar.

Retornar