Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]print(1)
Forum PHP.pl > Forum > Przedszkole
L0k0
Witam!

Programuję już trochę ale dziś zobaczyłem coś dość dziwnego. Będąc w zaprzyjaźnionej firmie kolega zadał mi pytanie:

Jaki jest wynik działania funkcji:
  1. echo '1'.(print'2')+3;


W pierwszym momencie pomyślałem o błędzie (string + int ...). Jednak okazało się, że wynikiem jest... 214.

Wróciłem do domu, sprawdziłem i rzeczywiście. Co dziwniejsze, okazało się ,że funkcja print działa 'dziwnie' i nie mogę za bardzo namierzyć w necie dlaczego.

Otóż dla
wynikiem jest... 11, dla
  1. echo print('1');
również! W ogóle dla stringów daje mi 11 a dla int'ów int + 1 (dla 2 jest to 21).

O co z tym chodzi?

Pozdrawiam!
Crozin
W dokumentacji masz wszystko napisane: print - funkcja (czy właściwie konstrukcja) ta wyświetla to co poda się jako jej argument oraz zwraca wartość "1" (int), która to jest później wyświetlana przez Twoje echo.
trueblue
Funkcja print() zwraca 1, więc echo print(1), to echo '11'
L0k0
Ja jeszcze raz: czy ktoś wie, jak można coś takiego wykorzystać?

Z informacji, które posiadam jest to jedno z zadań certyfikacji Zend PHP. Nie wiem czy ten certyfikat wymaga znajomości nonsensowych rzeczy czy ten zapis jest rzeczywiście wykorzystywany do czegoś?

Pozdrawiam!
vonski
To jest jedno z przykładowych pytań, niekoniecznie trafisz na nie na egzaminie, aczkolwiek jest to możliwe.
Jeśli chodzi o wykorzystanie w praktyce, to raczej sam kod taki jak:

  1. echo '1'.(print'2')+3;


na niewiele się przyda. Natomiast widzieć dlaczego to pokazuje "214" już jak najbardziej warto, bo pytanie sprawdza tak naprawdę kilka rzeczy. Kolejność operatorów, rzutowanie, znajomość konstrukcji print(), co się dzieje kiedy chcemy wyprintować printowany tekst (nie wiem jak to inaczej napisać smile.gif chodzi mi o: echo print 'costam').
Jeśli chodzi o zastosowanie faktu, że print można użyć w wyrażeniu, to np. taki przykład przychodzi mi do głowy:

  1. ($a == $b) ? print 'rowne' : print 'nierowne';


w powyższym print zadziała, echo wywali błąd.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.