Realm 0 Denunciar post Postado Dezembro 2, 2004 fala povo :lol: como faço pra sobrecarregar um método dentro da mesma classe no php5? isso não está dando certo... mas seria algo do tipo: PHP [/tr][tr]class Teste { private nome; function Teste() { } function Teste($nomeVar) { $this->nome = $nomeVar; } } [/tr] em Java só mudariamos a sintaxe, pois o princípio é o mesmo do código... e em PHP5?!?!? valeeeeeu xD Compartilhar este post Link para o post Compartilhar em outros sites
dokkalfr 0 Denunciar post Postado Dezembro 2, 2004 Esse tipo de sobrecarga é útil em Java porque ele é "Static Typed"!! Mas PHP é "Dinamic Typed" tu não precisa dizer que tipo de dados vai retornar a função nem o tipo de dado que ela vai receber!! Resumindo: Não existe sobrecarga (não da maneira que um programador C++/Java vê sobrecarga) em PHP. Duas coisas: 1) Em PHP5 existe um método especial chamado __construct() que serve como construtor da classe; 2) Pra fazer o que tu queres, um método onde o parametro é obrigatório e outro que não, tu podes dar um valor inicial para o parametro e testar no corpo do teu método: PHP [/tr][tr]<?phpclass Teste { private $nome; public function __construct ($nome = "") { if ($nome != "") $this->nome = $nome; } } ?>[/tr] Caso tu precise saber se o parametro é um inteiro ou um float, por exemplo, tu podes utilizar as funções is_int(), is_float(), is_object(),.... Compartilhar este post Link para o post Compartilhar em outros sites
Realm 0 Denunciar post Postado Dezembro 2, 2004 mas tem um problema.... eu tenho esse construtor agora: PHP [/tr][tr]function __construct($sqlName, $bhm=false, $xmlFile = NULL, $banco="fotolog", $usuario="root", $password="", $host="localhost") // e queria sobrecarregar assim: function __construct($sql, $banco="fotolog", $usuario="root", $password="", $host="localhost") [/tr] tem como? Compartilhar este post Link para o post Compartilhar em outros sites
dokkalfr 0 Denunciar post Postado Dezembro 2, 2004 Como eu disse antes, tu não pode sobrecarregar, mas dentro do método tu podes fazer testes e apartir dele decidir como utilizar os parametros. Do modo que tu queres tu podes utilizar as funções func_get_args() e func_num_args() e adaptar o __construct() para funcionar da meneira que tu queres dependendo do numero de parametros passados. Compartilhar este post Link para o post Compartilhar em outros sites
fast 0 Denunciar post Postado Dezembro 2, 2004 desculpa eu dar uma de intrometido aki.. http://forum.imasters.com.br/public/style_emoticons/default/blush.gif mas alguém podia me explica o q vem a ser "sobrecarregar" um método ? Compartilhar este post Link para o post Compartilhar em outros sites
dokkalfr 0 Denunciar post Postado Dezembro 3, 2004 É um recurso de linguagens tipadas para que um método possa, por exemplo, aceitar como parametro um inteiro ou um float, ou seja, possa aceitar numeros diferentes de parametros ou parametros de tipos diferentes.Em PHP esse conceito trata de poder manipular a chamada a um método/propriedade que não foi declarado.Veja as funções __get(), __set() e __call no PHP5 e a função __overload() em PHP4 Compartilhar este post Link para o post Compartilhar em outros sites
fast 0 Denunciar post Postado Dezembro 3, 2004 orra, vlw kra! vo dah uma pesquizada! Compartilhar este post Link para o post Compartilhar em outros sites