W języku PHP zmienne są dynamicznie typowane, czyli nie deklaruje się ich typu "na sztywno". Typ jest nadawany w momencie przypisania wartości i może się zmieniać po kolejnym przypisaniu.
Dlatego, aby ocenić, które zmienne są "tych samych typów", należy spojrzeć na rodzaj przypisanych wartości:
- literał bez cudzysłowów, np. 123, sugeruje typ liczbowy (np. całkowity),
- literał w cudzysłowie, np. "123", to tekst (łańcuch znaków), nawet jeśli wygląda jak liczba,
- wartości true/false oznaczają typ logiczny,
- konstrukcje tablicowe wskazują typ tablicy, a null – brak wartości.
Jeżeli w pokazanym fragmencie kodu (z przypisaniami) zmienna2 i zmienna3 otrzymują wartości tego samego rodzaju, to wniosek "zmienna2 i zmienna3 są tych samych typów" jest poprawny.
Pozostałe stwierdzenia są niepoprawne, jeśli choć jedna z porównywanych zmiennych ma przypisaną wartość innego typu (np. liczba vs napis). Typowym błędem jest uznanie, że "10" i 10 to "to samo", ponieważ wyglądają podobnie. W PHP to różne typy, co ma znaczenie m.in. przy porównaniach ścisłych (===) oraz podczas walidacji danych wejściowych.
W praktyce, gdy masz wątpliwości, możesz potwierdzić typ narzędziami diagnostycznymi, np. var_dump() lub gettype(), aby zobaczyć, jak PHP interpretuje wartości po przypisaniu.