otrzymuję błąd "Undefined zmiennej: przerwa w katalogu C: \ wamp \ www \ DGC \ Classes \ DateFilter.php"PHP - prywatnych klasy zmiennych dające błąd: niezdefiniowana zmienna
Oto mój kod na DateFilter klasa:
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';
}
}
Kiedy tworzę nową instancję klasy DateFilter i test wywołania(), daje mi to błąd. Rozumiem, że oznacza to, że zmienna nie została zainicjalizowana, ale wiem, że konstruktor jest wywoływany, ponieważ umieściłem w nim instrukcję echo i została ona wyprowadzona.
Próbowałem również: $ this :: $ interval-> format (...); self :: $ interval-> format (...); ale to nie zadziałało.
Wiem, że to prawdopodobnie łatwa łatka, przepraszam za pytanie nooba. Nie mogę uwierzyć, że to mnie zaskoczyło.
echo $ this -> $ interval-> format ("% d dni stary"); Daje mi również ten sam błąd:/ – CHawk
usunięcie drugiego znaku dolara. To jest $ this-> interval –
Zawsze znajdowałem dość "dziwne", że PHP zmusza cię do użycia '$ this' w celu uzyskania dostępu do pól obiektu. Wiele innych języków, takich jak C#, nie będzie (jeśli zmienna nie ma tej samej nazwy lokalnej). W każdym razie użycie "tego" jest zawsze dobrą praktyką, IMHO: pomaga szybko spojrzeć na właściwości obiektu i uniknąć nieporozumień ze zmiennymi lokalnymi. – gremo