Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Colegas,
o codigo abaixo era para printar na tela a instancia do objeto, mas nada acontece poderia me dar uma ajuda?
Parece que o problema esta na classe base, mas não sei como corrigir. Falo isso pq se eu tirar o abstract da classe base funciona.
Mas pode ser suposiçao.
<?php
require_once 'classes/clientes.class.php';
$cliente = new clientes();
$cliente->setValor('nome',"Maria");
$cliente->setValor('sobrenome',"Antonia");
$cliente->setValor('bairro',"Sao Dimas");
echo '<pre>';
printf($cliente);
echo '</pre>';
?>
Abaixo estão as classes para um entendimento melhor.
classe cliente
<?php
require_once ("base.class.php");
class clientes extends base
{
public function __construct($campos=array())
{
parent::__construct();
$this->tabela = "clientes";
if(sizeof($campos)<=0)
{
$this->campos_valores=array(
"nome"=> null,
"sobrenome" => null
);
}
else {
$this->campos_valores =$campos;
}
$this->campopk = "id";
}
}
?>
Classe Base
<?php
require_once ("banco.class.php");
abstract class base extends banco {
public $tabela = "";
public $campos_valores = array();
public $campopk = NULL;
public $valorpk = NULL;
public $extras_select = "";
public function addCampo($campo=NULL,$valor=NULL)
{
echo("exibir mensagem <br>");
if($campo!=null){
$this->campos_valores($campo) = $valor;
}
}//fim
public function delCampo($campo=NULL)
{
echo("passou <br>");
if(array_key_exists($campo, $this->campos_valores)){
unset($this->campos_valores[$campo]);
}
}//fim do método
public function setValor($campo=NULL,$valor=NULL)
{
if($campo!=null && $valor!=null){
$this->campos_valores[$campo] = $valor;
}
}//fim do método
public function getValor($campo=NULL)
{
if($campo!= null && array_key_exists($campo, $this->campos_valores)){
return $this->campos_valores($campo);
}else{
return FALSE;
}
}
}
?>
classe banco
<?php
abstract class banco{
//propriedades
public $servidor = "localhost";
public $usuario = "root";
public $senha = "root";
public $nomebanco = "aulas";
public $conexao = "NULL";
public $dataset = "NULL";
public $linhasafetadas = -1;
//métodos
public function __construct(){
$this->conecta();
echo("chamou constructor banco<br>");
}//fim da classe
public function __destruct() {
if($this->conexao != Null):
endif;
}//fim da classe
public function conecta(){
$this->conexao = mysql_connect($this->servidor,$this->usuario, $this->senha,TRUE)
or die($this->trataErro(__FILE__,__FUNCTION__,mysql_errno(),mysql_error(),TRUE));
mysql_select_db($this->nomebanco) or die($this->trataErro(__FILE__,__FUNCTION__,mysql_errno(),mysql_error(),TRUE));
mysql_query("SET NAMES 'utf8'");
mysql_query("SET character_set_connection=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_results=utf8");
}//Fim da classe
public function trataErro($arquivo=NULL,$rotina=NULL,$numero=NULL,$msgerro=NULL,$geraexcpt=FALSE){
if($arquivo==NULL) $arquivo="nao informado";
if($rotina==NULL) $rotina="nao informado";
if($numero==NULL) $numero=mysql_errno($this->conexao);
if($msgerro==NULL) $msgerro=mysql_error($this->conectar());
$resultado = 'Ocorreu um erro com os seguinte detalhes:<br />
<strong> Arquivo:</strong> '.$arquivo.'<br />
<strong> Rotina:</strong> '.$rotina.'<br />
<strong> codigo:</strong> '.$numero.'<br />
<strong> mensagem:</strong> '.$msgerro;
if($geraexcpt==false):
echo($resultado);
else:
die($resultado);
endif;
}//fim da classe
}
?>
Carregando comentários...