php, if, array_search, boolean e… MALEDETTA chiave 0!
Ho sorriso quando ho scovato l’errore e mi sono detto… “sei proprio un newbie!”…
La complessità del metodo che stavo scrivendo era alta e ho dovuto rivedere diversi passaggi, ma quest’ultimo problema mi ha fatto perdere quasi un’ora…
SCENA:
in PHP, se attraverso una espressione condizionale IF si vuole far eseguire qualcosa solo quando un determinato valore viene trovato in un array bisonga stare mooolto attenti!
Infatti array_search restituisce la chiave del valore trovato o false se il valore non è presente nell’array… il problema è che se il valore si trova nel primo elemento la chiave restituita è [0] che, nella verifica della condizione equivale ad un bel false!
Il problema, una volta scovato, è di facile soluzione, basta infatti impostare lo script in modo da eseguire una comparazione stretta del false, quindi === oppure !==
Spero che qualche altro disperato, in preda ad una googlata di speranza, trovi questa pagina prima di impazzire!
Giugno 8th, 2012 at 12:08
googlata di speranza andata a buon fine… grazie e mille
Maggio 2nd, 2015 at 18:16
Sei un GRANDEEEEEEE è tutto il pomeriggio che cerco di risolvere il problema. L’ultima googolata mi ha portato a te.
Di solito non lascio messaggi, ma ti meriti davvero un ringraziamento, quel maledetto indice [0] non voleva fare il suo lavoro.. grazie davvero. Sarei onorato di offrirti una birra perchè senza te non so come avrei risolto questa funzione.
Febbraio 9th, 2016 at 20:21
[…] riportare qui un mio vecchio articolo del 2011 pubblicato su Nerdsopolis ancora attualissimo che evidenzia l’importaza di uno 0 in un linguaggio a tipizzazione […]