KWALIFIKACJA INF3 - STYCZEŃ 2018

PYTANIE NR 26.
W języku PHP, dla zmiennych a = 5 i b = 3 wartość typu zmiennoprzecinkowego zwróci wyrażenie
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W PHP operator / służy do dzielenia i zwraca wynik liczbowy, typowo jako float, gdy wynik nie jest liczbą całkowitą (np. 5/3). Pozostałe działania (mnożenie i dodawanie) dają wynik całkowity dla int, a && jest operatorem logicznym zwracającym bool.

Pełne wyjaśnienie:

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.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Operator / wykonuje dzielenie i zwraca wynik liczbowy. Gdy dzielenie nie daje liczby całkowitej (np. 5/3), wynik ma część ułamkową, więc PHP zwraca wartość typu float.
Ponieważ 5 podzielone przez 3 nie jest liczbą całkowitą. PHP zachowuje część po przecinku, aby nie tracić informacji o wyniku dzielenia, dlatego rezultat jest traktowany jako liczba zmiennoprzecinkowa.
W praktyce używa się funkcji var_dump(), która pokaże zarówno wartość, jak i typ. W zadaniach egzaminacyjnych analizuje się operator: dzielenie zwykle prowadzi do float, a operatory logiczne do bool.
Tak, ale zwykle tylko wtedy, gdy przynajmniej jeden operand jest już typu float (np. 5.0 + 3). Dla dwóch wartości całkowitych (5 i 3) wynik mnożenia i dodawania pozostaje typowo całkowity.
&& to operator logiczny AND. Sprawdza warunek "i" i zwraca wartość typu bool (true/false). Nawet jeśli po obu stronach są liczby, są one interpretowane w kontekście prawda/fałsz.
W kontekście logicznym jako fałsz są traktowane m.in. 0 oraz wartości "puste". Liczby niezerowe (np. 3, 5) są traktowane jako prawda. Dlatego wyrażenia z && często dają true dla niezerowych liczb.
Najczęściej jest to operator dzielenia /, bo wiele dzielnień nie daje wyniku całkowitego. Również działania na wartościach typu float (np. 2.5*4) pozostają zmiennoprzecinkowe.
Tak, w praktyce stosuje się funkcję intdiv() do dzielenia całkowitego (ucina część ułamkową zgodnie z zasadami tej funkcji). To inny mechanizm niż operator /, który zachowuje ułamek.
Najczęściej myli się wynik dzielenia z "dzieleniem całkowitym" znanym z innych języków albo wybiera operator logiczny (np. &&) myśląc, że to działanie na liczbach. Warto zawsze rozpoznać kategorię operatora.
Przećwicz tabelę operatorów: arytmetyczne (+, -, *, /), porównania (==, ===) i logiczne (&&, ||). Do nauki używaj krótkich skryptów z var_dump(), aby widzieć typy wyników i unikać intuicyjnych błędów.
info

To pytanie poprawnie rozwiązuje 61% zdających egzamin. średnie

Eksperci podkreślają: "W PHP operator / służy do dzielenia i zwraca wynik liczbowy, typowo jako float, gdy wynik nie jest liczbą całkowitą (np. 5/3)."

Źródła:

  • PHP Manual: Operators - Arithmetic Operators (operator /), https://www.php.net/manual/en/language.operators.arithmetic.php - accessed 2026-02-18
  • PHP Manual: Types - Floating point numbers (float), https://www.php.net/manual/en/language.types.float.php - accessed 2026-02-18
  • PHP Manual: Operators - Logical Operators (&&), https://www.php.net/manual/en/language.operators.logical.php - accessed 2026-02-18

Materiały:

  • Oficjalna dokumentacja PHP: operatory
  • Oficjalna dokumentacja PHP: typy danych (float, int, bool)
  • Krótkie ćwiczenia: testy var_dump() dla wyników działań arytmetycznych

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego