Newsgroup: it.comp.www.php
Titolo: notifica per proprietà non definita

class a {
     //public $b;
}
 
$a = new a;
$a->b = 2;
 
La proprietà *b* non è definita ma non viene generata nessuna notifica.
C'è un modo per avere un comportamento più strict?
Siamo arrivate a php7.2, ma con le solite lacune...

 Siamo arrivate a php7.2, ma con le solite lacune...
 
Non è una lacuna, ma una caratteristica del linguaggio.
 
Molto utile, tra l'altro, quando devi codificare o decodificare JSON, 
visto che JS ha lo stesso comportamento (di aggiungere roba a un Object 
dinamicamente).
 
Tra l'altro non ci sono controindicazioni:
 
- se nessun metodo della classe usa la variabile, puoi metterci il 
valore che vuoi e viene ignorato
 
- se in altre parti del tuo software usi la variabile, non avrai errori
 
Praticamente tutti gli IDE te lo segnalano come warning, comunque, 
quindi se proprio vuoi il codice pulito, usa un IDE. :P
 
Bye.

 Bye.
 
IDE e surplus vari, in quantità: molto belli, comodi e invitanti :D
A parte gli scherzi, sono strumenti molto utili, ma certe cose non penso 
sia il caso di affidarli all'IDE.

 sia il caso di affidarli all'IDE.
 
Sei uno di quelli che usano ancora vi per sviluppare?
 
g4b0

Il 19/11/18 14:37, g4b0 ha scritto:

NO, ma certe cose ritengo che vadano gestite internamente IHMO.
Poi se l'IDE vuole dare una mando che ben venga.
 
$ php -r 'echo $x;'
PHP Notice:  Undefined variable: x in Command line code on line 1
 
Ma non era caso che l'interprete si scomodasse per generare la notice, 
tanto c'è l'IDE :D
 
IHMO

 tanto c'è l'IDE :D
 
Sono due cose diverse. L'interprete solleva la Notice a runtime, mentre 
l'IDE ti notifica un warning mentre sviluppi. Per esempio Netbeans in 
questo caso mi evidenzia la riga che contiene 'echo $x', mi mette un 
bel ! dentro ad un triangolo giallo, e mi dice: "$x seems to be 
uninitialized". 
 
Io lo trovo comodo, mi accorgo dei problemi prima ancora di far girare lo 
script, ed in caso di long running script mi salva parecchio tempo. Per 
esempio sto lavorando ad una migrazione ed ho uno script che porta i dati 
da un db ad un altro, completamente rivisto. Tempo di esecuzione ~60 
minuti. Preferisco accorgermi del problema prima di lanciare lo script!
 
Altra chicca di NB, ma credo che anche che gli altri IDE si possa fare, è 
che i warning sono configurabili a piacimento, anche se il default 
normalmente è più che sufficiente.
 
g4b0

 normalmente è più che sufficiente.
 
Ma non è ancora rimasto a php 5?

 Ma non è ancora rimasto a php 5?
 
No, la versione 8.2 è "aggiornata" a php 7.0. Poi c'è stato il periodo di 
transazione verso la apache foudation, per cui la versione 9 non 
prevedeva il supporto di PHP, ora dovrebbe uscire la 10 con il supporto.
 
Spero che il supporto sia modulare, in modo da viaggiare separato dallo 
sviluppo di NB, in modo tale da riuscire a star dietro alle versioni.
 
g4b0


 
Un "IDE" è una collezione di tool separati, lo dice il nome stesso. Anche
se programmi in C (e non mi venire a dire che non è "strict" come linguaggio)
oltre al compilatore fai sempre girare i check statici, gli style check, i
tool di test, come minimo.
Anche qui, arrivi dopo 60 anni e dici che dev'essere tutto prerogativa
del linguaggio e dell'ambiente d'esecuzione.
Mamma mia.
 
Per non fare 'ste figure, invece di lamentarti, magari chiedi.
 
 
Ciao!

 male?
 
Ricordi male, per fortuna :D