「未定義の変数: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ステートメントを入れて出力したので、コンストラクターが呼び出されていることはわかっています。
私も試しました:$ this :: $ interval-> format(...); self :: $ interval-> format(...);しかし、それは機能しませんでした。
私はこれがおそらく簡単な修正であることを知っています、noobの質問で申し訳ありません。これが私を困惑させたなんて信じられない。
PHPでメンバー変数interval
にアクセスするには、$this->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
}
}
$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';
}
}
function test()
{
echo $this->interval->format("%d days old </br>");
}
しようとしています
public var $interval;
そして
echo $this->interval;