Jakiś czas temu w sieci trafiłem na ciekawą zagadkę związaną ze znaną funkcją PHP – funkcją print()
Zagadka ta bardzo dobrze sprawdza naszą wiedzę dotyczącą rzutowania zmiennych, typowania i zasad działania funkcji print oraz echo. Oto ona:
echo print('1');
Jaki wynik zostanie wyświetlony na ekranie?
Pozornie wydaje się że odpowiedź jest oczywista: 1. Na pewno? Sprawdźcie sami:)
Jak się okazuje wynik to: 11. Dlaczego? Rozdzielmy ten skrypt na 2 części. Najpierw zostaje wykonywana funkcja:
print('1');
Oczywiście wydrukuje ona po prostu 1.
Kolejna funkcja:
echo(1);
także wydrukuje na ekranie 1. Mamy więc w sumie: 11
Zobaczmy inny ciekawy przykład:
echo '1'.(print'2')+3;
Jaki będzie wynik?
Wynik będzie 214. Dlaczego? Najpierw funkcja print wydrukuje 2, następnie echo wydrukuje 1, a na końcu wspomniane w pierwszym przykładzie echo print wydrukuje 1 + 3 a więc 4. Jak widać najpierw wypisywana jest wartość print, następnie to co było tak naprawdę na początku, a na końcu wartość echo print – czyli (int)1 jest dodawane do liczby 3.
Zachęcam do dodawania własnych przykładów w komentarzach!