从php中的类调用方法

时间:2015-03-31 16:51:24

标签: php

这有点令人尴尬,但我在使用PHP中的类调用方法时遇到问题,这是怎么回事:我创建了一个具有各自属性的类角色,代码是

<?php
 class persona {
   private $id;
   private $nombre;        //varchar(50)
   private $correo;        //varchar(50)
   private $especialidad;  //varchar(50)
   private $nacionalidad;  //varchar(50)  
   private $sueldo;        //float
   private $isss;          //float 
   private $afp;           //float

   //getter
   public function getId() {
      return $this->id;
   }
   public function getNombre() {
      return $this->nombre;
   }
   public function getCorreo() {
      return $this->descripcion;
   }
   public function getEspecialidad(){
       return $this->especialidad;
   }
   public function getNacionalidad(){
       return $this->nacionalidad;
   }
   public function getSueldo(){
       return $this->sueldo;
   }
   public function getIsss(){
       return $this->isss;
   }
   public function getAfp(){
       return $this->afp;
   }

   //setter   
   public function setNombre($nombre) {
      $this->nombre = $nombre;
   }
   public function setCorreo($correo) {
      $this->correo = $correo;
   }
   public function setEspecialidad($especialidad){
       $this->especialidad=$especialidad;
   }
   public function setNacionalidad($nacionalidad){
       $this->nacionalidad=$nacionalidad;
   }
   public function setSueldo($sueldo){
       $this->sueldo=$sueldo;
   }
   public function setIsss($isss){
       $this->isss=$isss;
   }
   public function setAfp($afp){
       $this->afp=$afp;
   }

   public function __construct($nombre, $correo, $especialidad, $nacionalidad, $sueldo, $isss, $afp, $id=null) {
      $this->nombre = $nombre;
      $this->correo = $descipcion;
      $this->especialidad = $especialidad;
      $this->nacionalidad = $nacionalidad;
      $this->sueldo = $sueldo;
      $this ->isss = $isss;
      $this->afp = $afp;
      $this->id = $id;
   }

   public function mostrar(){
       $mensaje="hola";
       return $mensaje;
   }
 }
   ?>

你可以在代码的末尾看到我创建了一个名为mostrar的函数,这个的唯一目的是显示一条消息,现在我想从一个不同的类调用这个方法,我的代码是

<?php
require_once('persona.php');
class prueba{
    private $person;

    public function __construct(){
        $person= new persona("el nombre","el correo", "la especialidad", "la nacionalidad", "el sueldo", "el isss", "el afp");
        mostrando();
    }

  public function mostrando(){
      $person->mostrar();
  }
}
?>

但是当我调试它并没有在浏览器中显示任何内容时,我想显示来自person.php类的消息,你能否告诉我代码中的问题是什么?

1 个答案:

答案 0 :(得分:2)

可变范围:

$ person!== $ this-&gt; person

class prueba{
    private $person;

    public function __construct(){
        $this->person= new persona("el nombre","el correo", "la especialidad", "la nacionalidad", "el sueldo", "el isss", "el afp");
        $this->mostrando();
    }

  public function mostrando(){
      echo $this->person->mostrar();
  }
}

$this->person是一个对象属性,可以从类中的所有方法访问。

$person是一个局部变量,只能从定义它的方法/函数中访问(除非作为参数传递给其他方法/函数)