En PHP , estático y const son dos cosas diferentes.
const denota una constante de clase. Son diferentes a las variables normales ya que no tienen el '$' frente a ellos, y no pueden tener ningún modificador de visibilidad (público, protegido, privado) antes que ellos. Su sintaxis:
class Test
{
const INT = "/^\d+$/";
}
Porque son constantes, son inmutables.
Estático denota datos que se comparten entre objetos de la misma clase. Estos datos pueden modificarse. Un ejemplo sería una clase que realiza un seguimiento de cuántas instancias están en juego en un momento dado:
class HowMany
{
private static $count = 0;
public function __construct()
{
self::$count++;
}
public function getCount()
{
return self::$count;
}
public function __destruct()
{
self::$count--;
}
}
$obj1 = new HowMany();
$obj2 = new HowMany();
echo $obj1->getCount();
unset($obj2);
echo $obj1->getCount();
Cuando es un const, debe ser manejado como estático internamente por el compilador de PHP, creo, ya que su valor no se puede cambiar. –
pero los valores de 'variables estáticas' se pueden cambiar por la forma en que se manejan como' static' porque no se pueden cambiar implícitamente pero pueden cambiar si depende de una variable global y la 'variable global' cambia antes de' instancia' de 'clase' se crea –