Priorytet operatorów
Część sekcji Podstawy ścieżki PHP w Coddy. Lekcja 20 z 71.
Gdy wyrażenie zawiera wiele operatorów, PHP stosuje określoną kolejność zwaną priorytetem operatorów. Podobnie jak w matematyce, mnożenie i dzielenie wykonuje się przed dodawaniem i odejmowaniem.
<?php
echo 5 + 3 * 2; // Wynik: 11, a nie 16
?>PHP najpierw mnoży 3 × 2 (otrzymując 6), a następnie dodaje 5. Gdyby operatory miały taki sam priorytet, obliczenia przebiegałyby od lewej do prawej: 5 + 3 = 8, a następnie 8 × 2 = 16. Ale tak to nie działa.
Oto kolejność działań operatorów, których się nauczyłeś — od najwyższego do najniższego priorytetu:
| Priorytet | Operatory |
| Najwyższy | ** (potęgowanie) |
| Wysoki | * / % |
| Niski | + - |
Aby zmienić domyślną kolejność, użyj nawiasów. Operacje w nawiasach są zawsze wykonywane jako pierwsze:
<?php
echo (5 + 3) * 2; // Wypisuje: 16
echo 2 ** 3 * 2; // Wypisuje: 16 (8 * 2)
echo 2 ** (3 * 2); // Wypisuje: 64 (2^6)
?>W razie wątpliwości użyj nawiasów, aby jasno wyrazić swoje intencje. Dzięki temu Twój kod będzie łatwiejszy do czytania i unikniesz nieoczekiwanych rezultatów.
Wyzwanie
ŁatwyWczytaj trzy liczby z wejścia: a, b i c.
Oblicz i wypisz wynik następującego wyrażenia, używając nawiasów, aby dodawanie odbyło się przed mnożeniem:
(a + b) * c ** 2
Oznacza to: najpierw dodaj a i b, a następnie pomnóż tę sumę przez c podniesione do potęgi 2.
Przykład:
Jeśli dane wejściowe to 2, 3 i 4, wynikiem powinno być 80, ponieważ:
- Najpierw dodaj 2 + 3 = 5
- Następnie oblicz 4 ** 2 = 16
- Na koniec pomnóż 5 * 16 = 80
Spróbuj swoich sił
<?php
// Odczytaj dane wejściowe
$a = intval(fgets(STDIN));
$b = intval(fgets(STDIN));
$c = intval(fgets(STDIN));
// TODO: Napisz poniżej kod, który obliczy (a + b) * c ** 2
// Wyświetl wynik
echo $result;
?>Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory porównania i logiczne
Operatory porównaniaRówność i tożsamośćOperatory logiczne — część 1Operatory logiczne — część 2Powtórka — prosta logika2Zmienne i typy danych
LiczbyCiągi znaków i cudzysłowyWartości logiczneKonwencje nazewnictwaPodsumowanie — inicjalizacja zmiennychPuste zmienneŁączenie ciągów znakówPobieranie danych od użytkownikaKonwersja na inne typy5Instrukcje warunkowe
Instrukcja ifIf - elseOperator trójargumentowyOperator null coalescingInstrukcja switchPodsumowanie — podejmowanie decyzji3Podstawowe operatory
Operatory arytmetyczneOperator moduloOperator potęgowaniaPrzypisanie złożoneInkrementacja/dekrementacjaPriorytet operatorówPowtórka — proste obliczeniaOperatory łańcuchów znakówPoćwicz samodzielnie: Kompilator PHP online