montano 0 Denunciar post Postado Setembro 2, 2009 bom dia, Meu objeto esta estanciando uma classe que herda de uma outra, porem nao esta passando pelo construct da superclasse. $obj = new Plano100 ($servidor,$usuario,$senha,$bd); class Plano100 extends Model { function __construct() { echo "Estanciou Plano 100"; } } class Model { private $link; private $errMsg; public function __construct($host, $user, $pass, $dbname) { echo "estanciou Model"; $this->link = new mysqli($host, $user, $pass, $dbname); if (mysqli_connect_errno()) { $this->errMsg = "Erro na Conexão:" . mysqli_connect_error(); return false; } } } Ja testei os include estao funcionando, e a class Model tambem ja foi testada, um outro objeto consegue estanciar ela direto, porem nao to conseguindo fazer o meu objeto : $obj estanciar Plano100 porem quero usar as function do Model. <o> help!. hehhe vlw OBS: Na tela só esta me dizendo "Estanciou Plano100" Compartilhar este post Link para o post Compartilhar em outros sites
Will Fernando 2 Denunciar post Postado Setembro 2, 2009 da uma olhada no link .. Link: http://us2.php.net/manual/pt_BR/keyword.parent.php valww =] Compartilhar este post Link para o post Compartilhar em outros sites
montano 0 Denunciar post Postado Setembro 2, 2009 Will, Mas eu quero fazer por __construct, um objeto ao estanciar uma classe que tenha uma super classe, primeiramente ele executa o __construtc da super e depois a da classe que herda. nao? Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Setembro 2, 2009 Dentro do construct da classe que herda, usa isto. class Plano100 extends Model { function __construct() { echo "Estanciou Plano 100"; parent::__contruct(); } } Deve funcionar Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
montano 0 Denunciar post Postado Setembro 2, 2009 funcinou Matias. Porem agora fica a duvida, uma classe que esta sendo herdada ela herda da classe super todas function. Por exemplo class super { __construc(){ echo "Sou classe super"; } function teste(){ } } class herda extends super{ __construct(){ echo "sou classe que herda"; } } $obj = new herda(); $obj->teste(); No meu exemplo posso usar function teste como se fosse do $obj pois ele herda ela, e na tela ira me retornar ao estanciar. "Sou classe super" "sou classe que herda"; Estou errado? Compartilhar este post Link para o post Compartilhar em outros sites
montano 0 Denunciar post Postado Setembro 2, 2009 Segue um exemplo que acho que agora meu conceito esta certo. Eu estava equivocado antes, ao pensar que a classe herdeira herda o construtor direto? vlw class Super { public $servidor; function __construct ($servidor){ $this->servidor = $servidor; } function teste(){ echo $this->servidor; } } class Herda extends Super{ function __construct ($servidor){ parent::__construct($servidor); } } $obj = new Herda('servidor'); $obj->teste(); Compartilhar este post Link para o post Compartilhar em outros sites
Will Fernando 2 Denunciar post Postado Setembro 2, 2009 uhum agora ta ficando legal =] .. da uma lida nesse artigo eh bem bacana .. http://www.vivaolinux.com.br/artigo/PHP5-Orientado-a-Objetos-Visibilidade-heranca-e-extensoes-de-classes/?pagina=1 valww Compartilhar este post Link para o post Compartilhar em outros sites
montano 0 Denunciar post Postado Setembro 2, 2009 class Plano100 extends Model { function __construct($servidor, $usuario, $senha, $bd) { parent::__construct($servidor, $usuario, $senha, $bd); } } $obj = new Plano100 ($servidor,$usuario,$senha,$bd); $obj->execute("INSERT INTO" . $tabela . "(" . $campos . ") VALUES (" . $propriedades . ")"); class Model { private $link; private $errMsg; public function __construct($host, $user, $pass, $dbname) { $this->link = new mysqli($host, $user, $pass, $dbname); if (mysqli_connect_errno()) { $this->errMsg = "Erro na Conexão:" . mysqli_connect_error(); return false; } } function execute($query) { if ($result = $this->link->query($query)) return $result; else $this->errMsg = "Erro ao executar:" . mysqli_error(); return false; } } Estou tentando inserir conteudo em uma tabela desse jeito. Porem nao esta funcionando :S $obj = new Plano100 ($servidor,$usuario,$senha,$bd); $obj->execute("INSERT INTO tb_plano100 (cliente) VALUES ('teste')"); $obj->redireciona(); Funcionou assim, entao deve ser erro nos meus campos. valeu pessoal, ajudaram muito. Compartilhar este post Link para o post Compartilhar em outros sites
Will Fernando 2 Denunciar post Postado Setembro 2, 2009 beleza.. vo bota aqui como resolvido .. qualquer duvida da uma olhada no "Laboratorio de Scripts" tem umas quantas classes com mysqli .. valww =] Compartilhar este post Link para o post Compartilhar em outros sites