PHP。从不同的类调用函数。

时间:2010-12-18 15:46:03

标签: php class function

我正在使用两个类:usuarios,preguntas。

在preguntas中我存储了id_usuario,它对应于来自用户的id,ok。但有时我需要显示的不仅仅是id,所以我在usuarios中创建了一个函数。 php打印此信息:

这是现在的mi代码

usuarios.php(我只包含此问题的相关代码)

CódigoPHP:

function __construct($id){

    $consulta = mysql_query("SELECT * FROM usuarios  WHERE id = '".$id."'");
        while($item = mysql_fetch_array($consulta)){                              
            $this->id = $item['id'];
            $this ->fid = $item['fid'];
            $this ->usuario = $item['alias'];
            $this ->password = $item['pass'];
            $this ->email = $item['mail'];
            $this ->fechar = $item['fechar'];
            $this ->ultima = $item['ultima'];
            $this ->img_src = $item['img_src'];
            $this ->reputacion =     $this ->fechar = $item['reputacion'];
        }
}




function miniatura(){
    $html_mini = "<div>$this->usuario</div>";
    return $html_mini;

} 

pregunta.php(我只包含此问题的相关代码)

CódigoPHP:

function get_autor(){


                $us = new usuario($item['id']);

            return $us->miniatura();
}



function imprimir_titular(){
    $html_t = '<h1 class="prg'.$this->id.'" >[ '.$this->id_eval_q.' ] '.$this->get_autor().' pregunta: '.$this->pregunta.' , '.$this->fecha.'</h1>';
    return $html_t;
} 

这就是错误:

引文:

  

致命错误:调用未定义的方法   usuario :: miniatura()in   /home/piscolab/public_html/keepyourlinks.com/recetorium/clases/pregunta.php   在第35行没有entiendoporquéno   加入改革协会,   aunque me deje crear el objeto usuario   :S

详细说明: - 受保护的属性

任何帮助都会受益匪浅

2 个答案:

答案 0 :(得分:1)

我复制了你的代码,改变了方法的内容,一切正常

    class usuario {
function __construct($id){

    echo 'ok';
}




function miniatura(){
    echo 'ok';

}   

}




function get_autor(){


                $us = new usuario($item['id']);

            return $us->miniatura();
}

显示完整的类,因为您的代码显示没有错误。

答案 1 :(得分:0)

好的,这是我要同时调用的文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

接收器&gt; Preguntas - Pregunta o回复quénycómococinar算法

Cargando ..

并在router.php中

<?php require_once('funciones.php');          

如果(isset($ _ POST [ 'INICIO'])){

// el usuario está iniciando sesion         

$iniciando = new sesion_usuarios();
if($iniciando->iniciar()){
    imprimir_sesion_iniciada();
}else{
    imprimir_formulario_sesion();
}

} else if(isset($ _ POST ['registro'])){  $ registrando = new registro_usuarios();     如果($ registrando-&GT;寄存器()){         imprimir_usuario_registrado();     }其他{         imprimir_formulario_registro();     }

}否则if(isset($ _ GET ['que'])或isset($ que)){

    if(isset($que))
        $tarea = $que;
    else
        $tarea = $_GET['que'];

    if($tarea == 'registro'){
        imprimir_formulario_registro();
    }else if($tarea == 'login'){
        imprimir_formulario_sesion();
    }else if($tarea == 'salir'){
        cerrar_sesion();
    }else if($tarea == 'ultimas_preguntas'){
        listar_preguntas();
    }else if($tarea == 'nueva_pregunta'){
        $tem = new pregunta();
        $tem->imprimir_formulario;
    }else if($tarea == 'ultimas_recetas'){
        $tem = new pregunta();
        $tem->imprimir_formulario;
    }

} else if(sesion()){     echo'Prontoprodrás:Preguntar cosas,responder cosas y evaluationar ambos。 Publicar tus recetas,descubrir otras,evaluationarlas y ser evaluationado。'; }其他{     $ archivo ='bienvenida.php';
    包括:($档案馆);     imprimir_formulario_sesion();

}

&GT;