好的,我已经缩小了我的问题,但无法解决问题。
我希望第一个类能够引用第二个类中的变量。
class TheFirstClass{
public function __construct(){
include 'SecondClass.php';
$SecondClass = new SecondClass;
echo($SecondClass->hour);
}
}
//in it's own file
class TheSecondClass{
public $second;
public $minute = 60;
public $hour;
public $day;
function __construct(){
$second = 1;
$minute = ($second * 60);
$hour = ($minute * 60);
$day = ($hour * 24);
}
}
但在这种情况下,只能从其他班级访问“分钟”。如果我要删除“= 60”,则分钟将不返回任何其他变量。
构造函数中的变量是正确计算的,但它们不会影响范围中较高的同名变量。为什么,以及构造代码的正确方法是什么?
答案 0 :(得分:5)
使用$this->
前缀:
$this->second = 1;
$this->minute = ($this->second * 60);
$this->hour = ($this->minute * 60);
$this->day = ($this->hour * 24);
如果不使用$this->
,您将创建仅存在于本地范围内的新局部变量,则不会影响属性。
答案 1 :(得分:2)
您正在使用的变量仅在__construct函数内部使用。您必须使用对象变量在其他类
中查看它们function __construct(){
$this->second = 1;
$this->minute = ($this->second * 60);
$this->hour = ($this->minute * 60);
$this->day = ($this->hour * 24);
}
稍后编辑:请注意,您不必在第二个类的构造函数中使用include
函数。你可以这样:
<?php
include('path/to/my_first_class.class.php');
include('path/to/my_second_class.class.php');
$myFirstObject = new my_first_class();
$mySecondObject = new my_second_class();
?>