PHP notice undefined property - FIX

Giorgio Borelli

Se ricevi la notifica "notice undefined property" dal tuo interprete PHP, non preoccuparti non è un'errore bloccante, e ad ogni modo puoi capire facilmente il perché si verifica ed implementare i giusti controlli affinché la "notice undefined property" non compaia più, andiamo a vedere come.

Innanazitutto diciamo che le "properties" in PHP altro non sono che le variabili definite all'interno di una Classe (stiamo parlando di programmazione ad oggetti OOP), o se preferite potete chiamarle campi, e se ricevete il messaggio "undefined property" banalmente significa che quella variabile non è definita all'interno della classe, o che il suo selettore di visibilità è impostato in modo tale che non sia accessibile dall'oggetto instanziato, ad es. potete tentare di accedere da una classe figlia ad un membro (variabile) nella classe madre che è dichiarato come privato.

Ma vediamo di non complicare le cose addentrandoci in concetti di programmazione che a questo livello non ci interessano, banalmente diciamo che se riceviamo quel messaggio la proprietà non è definita, e possiamo verificare ciò tramite i costrutti che il linguaggio PHP ci mette a disposizione, sia con isset sia con la funzione apposita property_exists().

 

Supponiamo di avere l'istanza di una classe che con molta fantasia definiamo object, e desideriamo verificare l'esistenza o meno di una sua data proprietà (attributo, variabile o campo chiamala come vuoi), possiamo fare in due modi:

 

$field_val = (isset($object->field) ? $object->field : false);

 

Oppure con la funzione:

if(property_exists($object,'field')){
    $field_val = $object->field;
}

 

In entrambi i casi effettuiamo un controllo sulla proprietà field di object, ed eviteremo il presentarsi della notifica "notice undefined property" sia che filed non sia definita sia che non abbia un valore corretto assegnato o che non sia accessibile da dove viene utilizzata.

 

Concludiamo dicendo che le "notice" in php non avvengono a run-time e permettono ugualmente l'esecuzione del codice (lo script php), sono solo dei messaggi, degli avvisi da parte dell'interprete php per informarti che probabilmente c'è qualche cosa di sbagliato in quello che stai facendo, ma puoi continuare a farlo, il codice non verrà bloccato, non è un fatal error che interrompe l'esecuzione dello script; ed inoltre le comparse dei "notice" possono essere disabilitate (non compariranno più) sia a livello di singolo script (file) PHP, in questo modo:

<?php
error_reporting(E_ALL & ~E_NOTICE);

...
?>

Sia a livello dell'intero applicativo web intervenendo sul file di CONFIG php.ini con la direttiva:

error_reporting = E_ALL & ~E_NOTICE

 

Questo è tutto per risolvere e far scomparire la notifica "notice undefined property", qui trovi un articolo analogo che spiega come Risolvere l'errore/notifica "Notice undefined index in PHP", se invece vuoi chiedere dell'altro scrivi pure nei commenti.

Categorie: PHP

Tags: ,

Aggiungi Commento

biuquote
Loading