Me pregunto si PHP tiene un tipo de variable en las clases que funciona como estática en otros idiomas. Y con eso quiero decir que todos los objetos de la misma clase usan la misma variable y cuando se actualiza en uno se actualiza en cada uno. Static está cerca porque se comparte en todos los objetos, pero necesito poder actualizarlo. ¿Tendré que usar globales para esto?¿Cuál es el equivalente PHP de una variable estática en otros idiomas?
Respuesta
Creo estática es lo que desea. Puede actualizar una variable estática, sólo hay que hacerlo en un "contexto estático" (es decir, utilizando el operador ::
class Class1 {
protected static $_count = 0;
public function incrementCount() {
return self::$_count++;
}
}
$instance1 = new Class1();
$instance2 = new Class1();
var_dump($instance1->incrementCount(), $instance2->incrementCount());
la salida:..
int 0
int 1
Este fue el problema. Estaba usando $ this en lugar de ::. – fent
Puede simplemente crear variables en un archivo PHP, por ejemplo, llamadas Constantes.
--Constants.php-- $ DATABASE_NAME = "mysql"
e incluyen el archivo en su archivo. Puedes cambiar su valor Se acerca mucho a lo que quieres, pero no es bueno llamarlos constantes porque las constantes no deben cambiarse, eso es lo que me confundió :).
No veo por qué la variable estática no funciona para lo que describió (pero no tiene nada que ver con la palabra clave final)?
<?php
class Bla
{
public static $var;
public function __construct()
{
Bla::$var = Bla::$var + 1;
}
}
$test = new Bla();
echo Bla::$var; // 1
$test = new Bla();
echo Bla::$var; // 2
?>
You ¿pueden actualizar propiedades estáticas:
class A {
protected static $_foo = 0;
public function increment()
{
self::$_foo++;
}
public function getFoo()
{
return self::$_foo;
}
}
$instanceOne = new A();
$instanceTwo = new A();
$instanceOne->getFoo(); // returns 0
$instanceTwo->increment();
$instanceOne->getFoo(); // returns 1
creo static
es la palabra clave que busca.
y no hay nada que impida un static
property from beeing "updated", en PHP: se inicializa la primera vez que se configura, mantiene su valor durante la ejecución del script PHP, pero definitivamente puede establecerlo en un nuevo valor.
La respuesta correcta es que no existe un equivalente en PHP a final, pero static parece ser lo que quería en primer lugar de todos modos.
estática tiene la propiedad de que tendrá el mismo valor en todas las instancias de una clase, porque no está vinculada a una instancia en particular.
Usted tendrá que utilizar el operador :: para acceder a ella, porque al ser estática, no se puede utilizar ->.
- 1. ¿Cuál es el equivalente de Python's Fabric en otros idiomas?
- 2. Equivalente a finales de unión estática (PHP) en otros idiomas populares
- 3. Completando dinámicamente una variable estática en PHP
- 4. MFMailComposeViewController en otros idiomas?
- 5. PHP 5.2 Equivalente a la unión estática tardía (nueva estática)?
- 6. ¿Cuál es el tiempo de vida de una variable estática en una función de C++?
- 7. ¿Cuál es el equivalente de InfiniteIterator de PHP en .NET?
- 8. ¿Cuál es el equivalente en Perl de $ _SERVER de PHP [...]?
- 9. ¿Cuál es el equivalente de Clojure de una constante "pública estática final" en Java
- 10. ¿Cuál es el equivalente del encodeURIcomponent de JavaScript en PHP?
- 11. ¿Cuál es el equivalente de php time() en mssql?
- 12. js ¿Adelante para otros idiomas?
- 13. atoi() con otros idiomas
- 14. ¿Cuál es el equivalente a + = en Matlab?
- 15. ¿Cuál es el equivalente de consulta MySQL de PHP strip_tags?
- 16. ¿Cuál es el uso de declarar una variable estática como extern dentro de una función?
- 17. StyleCop para otros idiomas
- 18. ¿Cuál es el equivalente de C# al "self ::" de PHP?
- 19. ¿Cuál es el ASP.NET equivalente a memcached en PHP?
- 20. ¿Cuál es el JSP equivalente a json_encode (en PHP)?
- 21. ¿Cuál es el equivalente de la preg_quote de PHP?
- 22. ¿Cuál es el equivalente de Perl a print_r() de PHP?
- 23. ¿Cuál es el ASP.Net equivalente al eco de PHP?
- 24. ¿Cuál es el equivalente Java de PHP var_dump?
- 25. inicializando una variable estática en el encabezado
- 26. ¿Cuál es la diferencia entre "GLOBAL" y la variable "ESTÁTICA" en PHP?
- 27. ¿Cuál es el equivalente .NET de PHP var_dump?
- 28. una variable estática en c
- 29. variable estática global vs variable estática en la función?
- 30. ¿Cuál es el facebook PHP sdk equivalente a FB.getLoginStatus?
¿Desde cuándo no puede actualizar las propiedades estáticas? – jason
Las variables estáticas se pueden modificar ... –
Las variables de Const no se pueden modificar; las variables estáticas pueden ser. – Extrakun