Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Henrique de Souza

:: no PHP5

Recommended Posts

Olá pessoal,

 

Iniciei hoje os estudos de PHP OO e notei no exemplo as seguir estes "::". O que significam? O exemplo funciona, mas não entendi os dois pontos².

<pre>
<?php
class A
{
    function foo()
    {
        if (isset($this)) {
            echo '$this está definida (';
            echo get_class($this);
            echo ")\n";
        }
        else {
            echo "\$this não está definida.\n";
        }
    }
}
class B
{
    function bar()
    {
        A::foo();
    }
}
$a = new A();
$a->foo();
A::foo();
$b = new B();
$b->bar();
B::bar();
?>
</pre>

 

Valeu!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando se cria um método estático, não precisa usa-lo através da instancia da classe, por exempo:

class user {

public function digaOi{ echo 'oi';}

public static function digaTial{ echo 'tial';}

}

Então:

$user = new User();
$user->digaOi();
// oi

Logo, usando um método estático:

User::digaTial();
// tial

O interessante é que um método estático também pode ser acessado pela instancia da classe ou seja:

$user = new User();
$user->digaTial();
// tial

Mas o mesmo não acontece com métodos comuns a saber:

User::digaOi();
//erro desgraçado.......

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.