Clases instanciadas y variables estáticas en PHP
Supongamos que se necesita una variable que "recuerde" su valor en cada instancia de una cierta clase. Quizás pareciera tan básico que te dió miedo preguntar... Es común desconocer que una sola clase PHP puede tener métodos o variables tanto estáticas como no estáticas a la misma vez. Veamos este ejemplo:
class Bob {
static private $cuenta;
function cuantosBobs() {
$this->cuenta = ($this->cuenta > 0) ? $this->cuenta++ : 1;
echo 'Hay '.$this->cuenta.' bobs en el universo.';
}
}
Ésta es la forma equivocada de usar las variables estáticas en una clase inicializada:
$bob1 = new Bob();
$bob1->cuantosBobs();
$bob2 = new Bob();
$bob2->cuantosBobs();
Obviamente, se esperaba que $cuenta se incremente con cada llamado a cuantosBobs(), pero no fué así. Veamos la manera correcta de conseguir este resultado. Re-escribamos la clase así:
class Bob {
static private $cuenta;
function cuantosBobs() {
Bob::$cuenta = (Bob::$cuenta > 0) ? Bob::$cuenta++ : 1;
echo 'Hay '.Bob::$cuenta.' bobs en el universo.';
}
}
Ahora, cada vez que llamamos a cuantosBobs(), el valor de $cuenta se incrementará por 1.
- AJAX
- CSS
- Diseño Gráfico
- Javascript
- Mercadeo
- Noticias
- OOP (Orientado a objetos)
- Panamá
- PHP
- Todos los temas
Español 
Login de Clientes
Comenzar Proyecto
Contáctenos
