I am getting the error "Undefined variable: interval in C:\wamp\www\DGC\classes\DateFilter.php"
Here is my code for the DateFilter class:
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';
}
}
When I create a new instance of the DateFilter class and call test() it give me the error. I realize it means the variable hasn't been initialized, but I know that the constructor is being called because I put an echo statement in there and it was output.
I have also tried: $this::$interval->format(...); self::$interval->format(...); but it didn't work.
I know this is probably an easy fix, sorry for the noob question. Can't believe this stumped me.
trying
and
$interval
is local to the function.$this->interval
references your private property.You have to use
$this->interval
to access the member variableinterval
in PHP. See PHP: The Basics