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!
Rispondi