

Metodos Estaticos
#2
Posted 02/12/2004, 16:35
Vc faz uma classe estática somente pra fazer query no banco, certo. Pra que vc precisa instanciar uma classe desse tipo? Vc nunca vai precisar de mais de uma instância desse mesmo objeto.Porque ele sempre vai fazer a mesma coisa independente do que tiver acontecendo no seu programa.Ele só serve para aquela coisa.
Não sei se fui claro.
Mas é isso ai.
if($ver_dados){
$nome = "Eduardo Oliva Barruzi";
$profissao = "Web Developer";
$idade = "19";
$publicar = true
}
if($publicar)
echo "$nome<br>$profissao<br>$idade";
#3
Posted 02/12/2004, 16:44
hum.....Quando vc precisar de um objeto estático, ou seja, vc nâo precisa ter mais do que uma instância do mesmo objeto.Um exemplo é uma query num banco de dados...por exemplo.:
Vc faz uma classe estática somente pra fazer query no banco, certo. Pra que vc precisa instanciar uma classe desse tipo? Vc nunca vai precisar de mais de uma instância desse mesmo objeto.Porque ele sempre vai fazer a mesma coisa independente do que tiver acontecendo no seu programa.Ele só serve para aquela coisa.
Não sei se fui claro.
Mas é isso ai.
mas como faco para 'criar' um metodo/classe estatico ?
#4
Posted 02/12/2004, 22:10
Um exemplo bem simples de método estático é quando tu não precisa acesso à variáveis internas da classe. Por exemplo, se eu fizer uma classe que formata strings:
PHP |
<?php class StringFormat{ static public function toUpper ($str){ return strtoupper($str); } } $string = "lalala"; echo StringFormat::toUpper($string); // LALALA ?> |
O exemplo é besta mas mostra bem que o método não é independente de variaveis ou metodos da classe!!
Um modelo mais avançado de programação que utiliza métodos e propriedades estáticos é o Singleton:
PHP |
<?php class Singleton { static private $instance = false; static public function getInstance() { if (self::$instance) return self::$instance; else { self::$instance = new AlgumaClasse; return self::$instance; } // ...... } $Obj = Singleton::getInstance(); ?> |
Dá pra notar que sempre vai-se estar trabalhando com a mesma instancia da classe!!
No manual do PHP e no site da Zend tem mais material sobre!
=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Blog PHPClube
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Bookmarks
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)