2011-04-03 12 views
32

¿Qué significa estática?diferencia entre público y público estático?

sé medios públicos que se puede acceder desde fuera de la clase, y privadas sólo desde dentro de la clase

+6

métodos y propiedades públicas sólo son accesibles después de crear instancias de la clase y se llama a través de "->" signo . Se puede acceder a los métodos y propiedades estáticos públicos sin necesidad de crear instancias de clases y se pueden llamar a través de "::". – arma

Respuesta

32

estática significa que se puede acceder sin crear instancias de una clase. Esto es bueno para constantes.

Los métodos estáticos no deben tener ningún efecto sobre el estado del objeto. Pueden tener variables locales además de los parámetros.

13

de http://php.net/manual/en/language.oop5.static.php

Declaring class properties or methods as static makes them accessible without needing an instantiation of the class. A property declared as static can not be accessed with an instantiated class object (though a static method can).

18

public: Se puede acceder a los artículos públicos declarados en todas partes.

protected: Protegido limita el acceso a las clases heredadas y parentales (y a la clase que define el elemento).

privado: Límite privado de visibilidad solo a la clase que define el artículo.

estática: Una variable estática existe solo en un alcance de función local, pero no pierde su valor cuando la ejecución del programa deja este ámbito.

última: palabra clave final impide que las clases hijas de sustituir un método anteponiendo la definición con el final. Si la clase en sí es que se define como final, no se puede extender.

transient: Una variable transitoria es una variable que no se puede serializar .

volátil: una variable que puede ser modificada simultáneamente por múltiples hilos deben declararse volátiles. Las variables declaradas como volátiles no serán optimizadas por el compilador porque su valor puede cambiar al en cualquier momento.

1

Algunos ejemplos ... Cuando el uso de palabras clave estática entonces no podemos utilizar este .. $

class Foo{ 
    private $foo='private'; 
    private function priv_func(){ 
     echo 'priv_method'; 
     } 
    public static function ger(){ 
     echo $this->foo; 
     $this->priv_func(); 
     } 
    } 
//class Zero extends Foo{}; 
$obj=new Foo; 

$obj->ger(); 

Fatal error: Using $this when not in object context in

+0

También puede usar 'self' para acceder a métodos estáticos y variables estáticas dentro de la misma clase. 'self :: priv_func();' –

+0

Siento que si este ejemplo tuviera un poco más de explicación me ayudaría realmente, ya que no hay ningún otro ejemplo en esta página. Lamentablemente, realmente no entiendo lo que intentas enseñarme. – Eoin

Cuestiones relacionadas