W PHP wynik wyrażenia zależy od użytego operatora i typów operandów. Dla zmiennych o wartościach całkowitych (np. 5 i 3) kluczowe jest rozróżnienie operatorów arytmetycznych i logicznych.
Dlaczego poprawne jest: a / b
Operator / wykonuje dzielenie. Gdy wynik dzielenia nie jest liczbą całkowitą (5/3 = 1,666...), PHP zwraca wartość zmiennoprzecinkową (float), aby zachować część ułamkową. To jest typowy mechanizm w PHP: dzielenie nie "ucina" części po przecinku, tylko zachowuje wynik rzeczywisty.
Dlaczego pozostałe odpowiedzi są błędne
- a * b – to mnożenie. Dla dwóch liczb całkowitych (5 i 3) wynik to 15, czyli wartość całkowita (int). Nie jest to wyrażenie, które ma naturalnie generować ułamek.
- a + b – to dodawanie. Dla 5 i 3 wynik to 8 (int). Podobnie jak wyżej, brak powodu do powstania części ułamkowej.
- a && b – to operator logiczny AND. W PHP operatory logiczne pracują na wartościach traktowanych jako prawda/fałsz i zwracają wartość typu bool. Ponieważ 5 i 3 są wartościami "prawdziwymi" (niezerowymi), wynik będzie logiczny, a nie liczbowy zmiennoprzecinkowy.
Wskazówka egzaminacyjna
Jeżeli pytanie dotyczy typu float, szukaj operatora, który może wygenerować część ułamkową (najczęściej dzielenie). Gdy widzisz operator logiczny (np. &&), spodziewaj się wyniku typu bool, niezależnie od tego, że operandy wyglądają jak liczby.