我收到错误“未定义的变量:C:\ wamp \ www \ DGC \ classes \ DateFilter.php中的间隔”
这是我的DateFilter类的代码:
class DateFilter extends Filter
{
//@param daysOld: how many days can be passed to be included in filter
//Ex. If daysOld = 7, everything that is less than a week old is included
private $interval;
public function DateFilter($daysOld)
{
echo 'days old' . $daysOld .'</ br>';
$interval = new DateInterval('P'.$daysOld.'D');
}
function test()
{
echo $interval->format("%d days old </br>");
//echo 'bla';
}
}
当我创建DateFilter类的新实例并调用test()时,它会给我错误。我意识到这意味着变量尚未初始化,但我知道正在调用构造函数,因为我在其中放置了一个echo语句并输出了它。
我也尝试过: $这:: $ interval-&GT;格式(...); 自:: $ interval-&GT;格式(...); 但它不起作用。
我知道这可能是一个简单的解决方法,对于noob问题感到抱歉。简直不敢相信这让我难过。
答案 0 :(得分:31)
您必须使用$this->interval
来访问PHP中的成员变量interval
。见PHP: The Basics
class DateFilter extends Filter
{
private $interval; // this is correct.
public function DateFilter($daysOld)
{
$this->interval = new DateInterval('P'.$daysOld.'D'); // fix this
}
function test()
{
echo $this->interval->format("%d days old </br>"); // and fix this
}
}
答案 1 :(得分:3)
$interval
是函数的本地函数。 $this->interval
引用您的私有财产。
class DateFilter extends Filter
{
//@param daysOld: how many days can be passed to be included in filter
//Ex. If daysOld = 7, everything that is less than a week old is included
private $interval;
public function DateFilter($daysOld)
{
echo 'days old' . $daysOld .'</ br>';
$this->interval = new DateInterval('P'.$daysOld.'D');
}
function test()
{
echo $this->interval->format("%d days old </br>");
//echo 'bla';
}
}
答案 2 :(得分:2)
function test()
{
echo $this->interval->format("%d days old </br>");
}
答案 3 :(得分:0)
尝试
public var $interval;
和
echo $this->interval;