Dec 07

L’operador ‘===’ en PHP

Reading time: 2 – 2 minutes

Amb el temps que fa que programo en PHP i mai m’havia trobat amb la necessitat d’usar aquest operador. De fet, el que hauria de dir és que mai m’havia imaginat que existia aquest operador. Segur que tots coneixeu el ‘==’ que simplement serveix per comparar si dos valors són iguals. Doncs bé, la diferència amb el ‘===’ és que es compara que siguin iguals i del mateix tipus. A mi m’ha servit per solucionar un problema molt senzill i que es feia molt complicat.

Per exemple, si tenim un array i fem una búsqueda d’un valor dintre de l’array amb la comanda array_search ens retornarà la clau que identifica la fila de l’array on hi ha el valor que busquem. Però si el valor no es troba en l’array ens retornarà un false. Si volem saber si s’ha trobat o no, podem fer un:

if ( $clau_retornada == false )

El problemilla d’aquest codi és que false és igual a 0 i si la busqueda retorna com a resultat la clau 0 (primera posició d’un array) aquí tindrem una resposta ambigua. Doncs bé si la condició hagués estat:

if ( $clau_retornada === false )

No haguéssim tingut aquest problema, ja que el zero retornat per la funció array_search en el cas de ser una clau hagués tingut un tipus numéric o alfanuméric, però no de tipus boleà. Així doncs, gràcies al operador del que parlem podriem evitar l’ambigüetat del valor retornat per la funció array_search.