我试图通过php脚本中的另一个类从一个类访问变量:
我的第一堂课是:
班级数据{
private $length;
private $height;
public function setLength($length){
$this->length = $length;
}
public function getLength(){
return $this->length;
}
public function setHeight($height){
$this->height = $height;
}
public function getHeight(){
return $this->height;
}
}
我有另一个班级:
class proccess extends data{
public function getOrientation(){
if($this->getLength() > $this->getHeight()) {
$orientation = 'landscape';
} else {
$orientation = 'portrait';
}
}
}
当尝试从类进程访问$ this-> getLenght()或$ this-getHeight()时,值为空;我通过我的PHP脚本设置值,如下所示:
<?php
require_once('functions/data.php');
require_once('functions/process.php');
$data=new data();
$process = new process();
$data->setLength(25);
$data->setHeight(30);
$orientation = $process->getOrientation();
关于为什么函数getOrientation无法获取宽度和长度值以及如何解决这个问题的任何想法?
答案 0 :(得分:3)
您正在为$data
的其他对象设置值。您必须为$process
设置它们。
$process = new process();
$process->setLength(25);
$process->setHeight(30);
$orientation = $process->getOrientation();
答案 1 :(得分:-1)
变量应为protected
而不是private
- 请参阅:
http://php.net/manual/en/language.oop5.visibility.php What is the difference between public, private, and protected?
而且,正如MahanGM指出的那样,您使用的是两个不同的对象实例,它们完全没有关系。您应该执行$process->setLength
和$process->setHeight
或$data->getOrientation
。