这有点令人尴尬,但我在使用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类的消息,你能否告诉我代码中的问题是什么?
答案 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
是一个局部变量,只能从定义它的方法/函数中访问(除非作为参数传递给其他方法/函数)