PHP, a porównywanie łańcuchów
PHP z racji bycia dynamicznie typowanym językiem programowania zachęca do tworzenia kodu na pograniczu poprawności działania. Każdy uczący się języka programowania słyszał na pewno o zjawisku boxing oraz unboxing, które w skrócie oznacza auto-magiczne rzutowanie wartości na najbardziej pasujący typ. Takie zachowanie występuje, nawet w językach statycznie typowanych jak Java czy C#(np. int<=>Integer). W PHP może przybrać ono następującą postać:
echo 123 == "123a123";
Wyrażenie to da wartość True, mimo znaczącej różnicy. Wykorzystanie znacznika równoważności === rozwiązuje ten problem , jednakże porównanie:
echo 1 === "1";
Da wartość False. Porównywanie łańcuchów znakowych nie jest wyższą szkołą jazdy, wystarczy użyć jednej z bezpiecznych binarnie i obliczalnych funkcji strcmp lub strcasecmp.
