PHP suporta classes e outras construções orientadas a objetos.
classe exampleClass public static $ foo; público $ bar; função pública regularFunction () echo $ this-> bar; função estática pública staticFunction () echo self :: $ foo; função estática pública anotherStatFn () self :: staticFunction (); função pública regularFnUsingStaticVar () echo self :: $ foo; // NOTA: A partir do PHP 5.3, é permitido usar $ this :: $ bar em vez de self :: $ bar exampleClass :: $ foo = "Hello"; $ obj = new exampleClass (); $ obj-> bar = "Mundo!"; exampleClass :: staticFunction (); / * imprime Hello * / $ obj-> regularFunction (); / * imprime Mundo! * /
Funções estáticas podem usar apenas variáveis estáticas. Funções e variáveis estáticas são referenciadas via auto::functionName () ou auto::nome variável. No exemplo mostrado acima, variáveis estáticas são referenciadas com o nome da classe (exampleClass :: $ foo) ou, com um auto:: (self :: $ foo) quando usado no método estático [chamado staticFunction ()] da classe.
Funções regulares e variáveis de uma classe precisam que um contexto de objeto seja referenciado. Eles não podem existir sem um contexto de objeto. O contexto do objeto é fornecido por $ this. No exemplo acima, $ bar é uma variável regular e, portanto, é referenciada como $ obj-> bar (no contexto do objeto com a variável obj) ou como $ this-> bar (novamente em um contexto de objeto dentro do método de um objeto).
auto não usa um precedente $ Porque auto não conota uma variável, mas a classe se constrói. $ this faz referência a uma variável específica para que ela tenha um precedente $.