sto ottenendo l'errore "Variabile non definita: intervallo in C: \ wamp \ www \ DGC \ Classes \ DateFilter.php"PHP - variabili di classe privata che dà errore: non definito variabile
Ecco il mio codice per la DateFilter classe:
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';
}
}
Quando creo una nuova istanza della classe DateFilter e il test di chiamata() mi dà l'errore. Mi rendo conto che significa che la variabile non è stata inizializzata, ma so che il costruttore viene chiamato perché ho inserito un'istruzione echo e l'output è stato eseguito.
Ho anche provato: $ questo :: $ intervallo-> formato (...); self :: $ interval-> format (...); ma non ha funzionato.
So che questa è probabilmente una soluzione semplice, mi dispiace per la domanda noob. Non posso credere che questo mi abbia bloccato.
echo $ this -> $ per intervallo> format ("% d giorni vecchi"); Mi dà anche lo stesso errore:/ – CHawk
rimuovere il secondo segno di dollaro. È $ this-> interval –
Ho sempre trovato abbastanza "strano" che PHP ti costringa a usare '$ this' per accedere ai campi dell'oggetto. Molti altri linguaggi come C# non lo faranno (se la variabile non ha lo stesso nome di uno locale). Ad ogni modo l'uso di "questo" è sempre una buona pratica, IMHO: ti aiuta a dare un'occhiata veloce alle proprietà dell'oggetto ed evitare confusione con le variabili locali. – gremo