Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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!
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.......
basicamente server para acessar membros(atributos e metodos) estaticos de uma classe. Um valor estatico é compartilhado entre todas as instancias do objeto.
http://www.php.net/manual/en/language.oop5.paamayim-nekudotayim.php