繁体   English   中英

从php中的类调用方法

[英]call a method from a class in 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类的消息,您能告诉我代码中的问题是什么吗?

可变范围:

$ person!== $ this-> 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是一个局部变量,只能从定义它的方法/函数访问(除非作为参数传递给其他方法/函数)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM