3. PHP – zmienne, stałe, typy danych i operatory


TaskQuest

Dodatek

Szybki quiz – przypomnienie poprzedniej lekcji

1. Co zostanie wyświetlone?

$imie = "Ola";
echo "Cześć $imie!";
echo "<br>";
echo 'Cześć $imie!';

2. Dlaczego ten kod nie działa? Popraw go.

echo "Powiedział "Hej" i wyszedł.";

3. Który zapis poprawnie połączy tekst ze zmienną $miasto w jeden ciąg znaków?

a) echo "Mieszkam w " + $miasto;
b) echo "Mieszkam w " . $miasto;
c) echo "Mieszkam w " & $miasto;

4. Który fragment spowoduje błąd? Dlaczego?

a)

// komentarz // w komentarzu

b)

/* zewnętrzny /* wewnętrzny */ dalszy tekst */

c)

# komentarz liniowy

5. Co zostanie wyświetlone?

$txt = <<<'END'
Cena: $cena zł
END;
echo $txt;

6. Uzupełnij krótszy zapis tak, aby wyświetlił wartość zmiennej $nazwa w akapicie:

<p><?php echo $nazwa; ?></p>
<p>______ $nazwa ?></p>

7. Uczeń zapisał skrypt jako start.html i otworzył go przez localhost. Zamiast wyniku widzi kod PHP albo nic. Co jest przyczyną?

ODPOWIEDZI

  1. Cześć Ola! a w następnej linii Cześć $imie! – w apostrofach zmienna nie jest podstawiana.
  2. Cudzysłów wewnątrz tekstu kończy ciąg znaków. Poprawnie: echo "Powiedział \"Hej\" i wyszedł."; albo echo 'Powiedział "Hej" i wyszedł.';
  3. b) – w PHP teksty łączy kropka.
  4. b) – komentarzy blokowych nie wolno zagnieżdżać. Pierwsze */ zamyka komentarz, a dalszy tekst */ jest traktowane jak kod.
  5. Cena: $cena zł – nowdoc (<<<'END') nie podstawia zmiennych.
  6. <p><?= $nazwa ?></p>
  7. Kod PHP musi być w pliku z rozszerzeniem .php – plik .html nie jest przekazywany do interpretera PHP.

ZDEFINIOWANIE ZMIENNYCH

Zmienna, to nic innego jak kontener przechowujący w sobie pewną wartość, którą można „podmieniać” w trakcie realizacji skryptu. Zmienna w PHP to nazwana wartość przechowywana w pamięci, której zawartość może się zmieniać w trakcie działania programu. PHP jest językiem o typowaniu dynamicznym, więc typ zmiennej wynika z aktualnie przypisanej wartości.

W celu zdefiniowania zmiennej w języku php, należy użyć znaku $, a następnie podać nazwę zmiennej np. $zmienna, $suma itd.

Podczas tworzenia nazw zmiennych powinniśmy przestrzegać pewnych zasad:

  • nazwa zmiennej nie może rozpoczynać się od cyfry
  • nie powinna zawierać polskich znaków diakrytycznych (ogonków)
  • w nazwie nie umieszczamy spacji
  • używamy tylko liter, cyfr i znaków podkreślnika
  • pierwszy znak po $ musi być literą lub _
  • zmienne są case-sensitive, czyli rozróżniana jest wielkość liter
  • W PHP 8 warto też od początku zwracać uwagę na czytelność: stosuj spójne nazewnictwo (np. $userName lub $user_name) i unikaj nazw typu $a, $b poza krótkimi przykładami.

Przykład deklaracji zmiennych:

$a = 10;
$b = 3;

W PHP nie musisz deklarować typu zwykłej zmiennej — typ wynika z przypisanej wartości. W PHP 8 możesz jednak deklarować typy w sygnaturach funkcji/metod oraz (w klasach) typy właściwości, co zwiększa bezpieczeństwo i czytelność kodu.

STAŁE

Stała, to kontener przechowujący wartość, która jest niezmienna w trakcie realizacji skryptu.

Stałą definiujemy raz i nie zmieniamy jej wartości. Nazwy stałych często zapisuje się wielkimi literami (konwencja).

define(’NAZWA_STALEJ’, wartosc_stalej);

stosuje się też składnię const, szczególnie w klasach lub dla stałych globalnych w plikach

const NAZWA_STALEJ = 'wartość’;

Różnica: const działa na etapie kompilacji (bardziej „statycznie”), a define() to funkcja wywoływana w trakcie działania programu. 

WYŚWIETLANIE ZMIENNYCH I STAŁYCH

W celu wyświetlenia zmiennej i/lub stałej wystarczy użyć instrukcji echo:

$zmienna = "Ala";
echo $zmienna;

define('STALA', "kota");
echo STALA;

STOSOWANIE OPERATORÓW

OPERATORY ARYTMETYCZNE

dodawanie: $a + $b = 10 + 3 = 13
odejmowanie: $a – $b = 10 – 3 = 7
mnożenie: $a * $b = 10 * 3 = 30
dzielenie: $a / $b = 10 / 3 = 3.3333333333333
dzielenie modulo: $a % $b = 10 % 3 = 1
potęgowanie: $a ** $b = 10 ** 3 = 1000
negacja: -$a = -10

OPERATOR PRZYPISANIA

przypisanie: $c = 5

ŁĄCZONE OPERATORY PRZYPISANIA

$c = 12;
$d = 6;

$c += $d to jest to samo co $c = $c + $d, czyli 12 + 6 = 18
$c -= $d to jest to samo co $c = $c – $d, czyli 12 – 6=6
$c *= $d to jest to samo co $c = $c * $d, czyli 12 * 6=72
$c /= $d to jest to samo co $c = $c / $d, czyli 12 / 6=2
$c %= $d to jest to samo co $c = $c % $d, czyli 12 % 6=0

PRE- I POSTINKREMENTACJA ORAZ DEKREMENTACJA

zadeklarowaliśmy zmienną $e = 5

$e++ = 5 (oczekujemy 5, ponieważ najpierw jest zwracana zmienna, a później zwiększana, zmiana nastąpi dopiero po zakończeniu instrukcji echo)
$e wynosi teraz 6 (funkcja echo sie zakończyła, więc otrzymujemy powiększoną zmienną)

zadeklarowaliśmy zmienną $f = 7

++$f = 8(oczekujemy 8, ponieważ najpierw jest zwiększana zmienna, a później zwracana jej wartość)

zadeklarowaliśmy zmienną $g = 6

$g-- = 6;

(oczekujemy 6, ponieważ najpierw jest zwracana zmienna, a później zmniejszana, zmiana nastąpi dopiero po zakończeniu instrukcji echo)
$g wynosi teraz 5 (funkcja echo sie zakończyła, więc otrzymujemy pomniejszoną zmienną)

zadeklarowaliśmy zmienną $h = 8

--$h = 7

(oczekujemy 7, ponieważ najpierw jest zmniejszana zmienna, a później zwracana jej wartość)

OPERATORY ŁĄCZENIA CIĄGÓW

łączenie ciągów: $a . $b = 10 . 3 = 103

$c .= $d to jest to samo co $c = $c . $d, czyli 12 . 6=126

$a.=" to jest dalsza część zmiennej";

wyświetli: 10 to jest dalsza część zmiennej

OPERATORY PORÓWNANIA

$a==$b sprawdza czy są takie same i zwraca wartość true lub false, czyli 10 == 3 zwraca false

$a===$b sprawdza czy są identyczne (czyli takie same + taki sam typ zmiennej) i zwraca wartość true lub false, czyli 10 === 3 zwraca false

$a!=$b sprawdza czy są różne i zwraca wartość true lub false, czyli 10 != 3 zwraca true

$a<>$b sprawdza czy są różne i zwraca wartość true lub false, czyli 10 <> 3 zwraca true

$a!==$b sprawdza czy nie są identyczne (czyli takie same + taki sam typ zmiennej) i zwraca wartość true lub false, czyli 10 !== 3 zwraca true

$a>$b sprawdza czy $a jest większe od $b i zwraca wartość true lub false, czyli 10 > 3 zwraca true

$a<$b sprawdza czy $a jest mniejsze od $b i zwraca wartość true lub false, czyli 10 < 3 zwraca false

$a>=$b sprawdza czy $a jest większe lub równe $b i zwraca wartość true lub false, czyli 10 >= 3 zwraca true

$a<=$b sprawdza czy $a jest mniejsze lub równe $b i zwraca wartość true lub false, czyli 10 <= 3 zwraca false

OPERATORY LOGICZNE

if($a < 10 and $b != 2) oba warunki muszą być spełnione, zwraca true lub false, czyli if(10 < 10 and 2 != 2) zwraca false

if($a == 7 && $b == 2) oba warunki muszą być spełnione, zwraca true lub false, czyli if(10 == 7 && 2 == 2) zwraca false

if($a >= 5 or $b > 7) jeden lub oba warunki są spełnione, zwraca true lub false, czyli if(10 >= 5 or 2 > 7) zwraca true

if(10 == 5 || 2 > 6) jeden lub oba warunki są spełnione, zwraca true lub false, czyli if(10 == 5 || 2 > 6) zwraca false

if($a == 5 xor $b == 3) tylko jeden z warunków musi być spełniony, ale nie oba, zwraca true lub false, czyli if(10 == 5 xor 2 == 3) zwraca false

if($a == 5 ^ $b == 3) tylko jeden z warunków musi być spełniony, ale nie oba, zwraca true lub false, czyli if(10 == 5 ^ 2 == 3) zwraca false

if(!(10 == 8)) zaprzeczenie, zwraca true lub false, czyli if(!(10 == 8)) zwraca true

OPERATOR REFERENCJI – &

//operacje na wartościach - bez referencji
$a = 5;
$b = $a; //$b jest kopią $a
$a = 7;//nie zmienia to wartości $b

$a przechowuje 7, $b przechowuje 5

//zastosowanie operatora referencji
$a = 5;
$b = &$a; //$b wskazuje na ten sam adres pamięci co $a
$a = 7; //zmieniając $a zmieniamy wartość $b

$a przechowuje 7, $b przechowuje 7

OPERATOR TRÓJKOWY

$stopien = 3;
//operator trójkowy
$stopien > 1 ? $wynik = 'pozytywny' : $wynik = 'negatywny';
//ten sam zapis w instrukcji if...else...
if ($stopien>1) $wynik = 'pozytywny'; else $wynik = 'negatywny';

Zostanie wyświetlone: pozytywny

OPERATOR TŁUMIENIA BŁĘDÓW @

$a = 3.25;
$b = 0; //Uwaga - nie ma dzielenia przez zero!
$c = $a / $b; //błąd - zatrzymanie wykonywania skryptu
echo $c; //ta instrukcja nie będzie wykonana

Zostanie wyświetlone:
Warning: Division by zero in C:\xampp\htdocs\zajecia\operatory.php on line 376
NAN

$c = @($a / $b); //kontynuacja skryptu
echo 'Błąd został stłumiony';

Zostanie wyświetlone: Błąd został stłumiony

OPERATORY TABLICOWE

$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
// union of $x and $y
echo '<pre>';
print_r($x + $y);
echo '</pre>';

Wyświetli:

Array
(
    [a] => red
    [b] => green
    [c] => blue
    [d] => yellow
)
//Returns true if $x and $y have the same key/value pairs
var_dump($x == $y);

Wyświetli: bool(false)

//Returns true if $x and $y have the same key/value pairs in the same order and of the same types
var_dump($x === $y);

Wyświetli: bool(false)

//Returns true if $x is not equal to $y
var_dump($x != $y);

Wyświetli: bool(true)

//Returns true if $x is not equal to $y
var_dump($x <> $y);

Wyświetli: bool(true)

//Returns true if $x is not identical to $y
var_dump($x !== $y);

Wyświetli: bool(true)

ZADANIA:

1. Napisz skrypt, który wyświetli w oknie przeglądarki tekst:
Tomorrow I’ll learn PHP global variables.
oraz tekst:
This is a bad command : del c:\\*.*
Każdy napis w osobnej linii.

2. Utwórz zmienną zawierającą tekst: Kocham PHP i wyświetl ją.

3. Zdefiniuj stałą URL, przypisz do niej adres internetowy i wyświetl ją.

4. Zadeklaruj 2 zmienne $a = 10 i $b = 3. Wykonaj na nich operacje arytmetyczne i wyświetl wyniki w postaci:
dodawanie: $a + $b = 10 + 3 = 13…
wykonaj te czynności z: +, -, *, /, %, **, negacja.

5. Zadeklaruj zmienne $c = 12 i $d = 6. Przetestuj na nich łączone operatory przypisania i wyświetl wyniki w formacie:
$c += $d to jest to samo co $c = $c + $d, czyli 12 + 6 = 18…

6. Uruchom poniższy kod i przeanalizuj go.

<?php
$A = 5; $B = 9; $C = 5;
// Operatory porównania zwracają TRUE lub FALSE więc używamy komendy var_dump()
var_dump( $A == $B );
var_dump( $A != $B );
var_dump( $A == $C );
var_dump( $A === $C );
?>

Na jego podstawie wykonaj poniższe zadanie:
Utwórz dwie zmienne o nazwach $first, $second. Przypisz do nich dwie różne wartości logiczne jakie znasz (true i false). Użyj komendy var_dump() aby sprawdzić wynik porównania ich ==. Zmień wartość zmiennej second na przeciwną i ponownie sprawdź wynik. Ustaw obie zmienne na wartość false i ponownie sprawdź wynik. Sprawdź co się stanie, jeśli komendę var_dump zamienisz na komendę echo.

7. Utwórz trzy zmienne o nazwach $nr1, $nr2, $resultModulo. Dwie niech przechowują dowolne liczby całkowite. Trzecia o nazwie $resultModulo niech przechowuje liczbę 0. Oblicz resztę z dzielenia (modulo) tych liczb ($nr1 modulo $nr2) i zapisz wynik w zmiennej $resultModulo. Wypisz zmienną $resultModulo w konsoli za pomocą komendy echo

8. Wyświetl informację o aktualnie używanej wersji php

9. Napisz skrypt, który umieści na stronie w znacznikach H1 napis: “PHP – podstawy”.

10. Utwórz zmienną o nazwie $php i przypisz do niej napis: “$$ PHP ćwiczymy string $$”. Następnie, umieść zawartość tej zmiennej w tytule strony oraz w nagłówku H2 w widoku strony.

11. Trzy zmienne zostały zdefiniowane:

$a = 2;

$pi = 3.14;

$tekst = „Jestem mistrzem PHP”;

używając zmiennych $a, $pi, $tekst napisz skrypt wyświetlający następujący tekst:

2 to liczba parzysta

Liczba PI to: 3.14

Jestem mistrzem PHP

12. Wyświetl wynik dodawania, odejmowania, dzielenia, mnożenia, reszty z dzielenia i potęgowania dwóch zmiennych:

$a = 4;

$b = 8;

13. Napisz skrypt, który zamienia między sobą wartości dwóch zmiennych:

$zmiennax1 = 10;

$zmiennax2 = 12;

14. Przygotuj skrypt, który obliczy pole powierzchni i obwód prostokąta o bokach $x i $y:

$x = 20;

$y = 100;

TaskQuest — Twój projekt na cały semestr

KARTA PRACY

Karta pracy

Projekt: TaskQuest — grywalizowana aplikacja do zarządzania zadaniami. Użytkownik loguje się, dodaje zadania, za ich wykonanie zdobywa punkty XP, awansuje na poziomy, zdobywa odznaki i widzi swoją pozycję w rankingu klasy. Każda lekcja rozbudowuje tę samą aplikację o nową funkcję.

PHP — zmienne, stałe, typy danych i operatory

Cel lekcji

Zastąpić dane „na sztywno” zmiennymi i wprowadzić pierwsze obliczenia.

Co dziś budujesz

Dane użytkownika jako zmienne oraz pasek postępu XP wyliczany operatorami.

Kroki do wykonania

  1. Zadeklaruj zmienne: $imieUzytkownika, $xp, $poziom (na razie $poziom ustaw ręcznie na 1 — automatyczne wyliczanie poziomu z XP zrobimy dopiero w lekcji 4, gdy poznamy instrukcje warunkowe).
  2. Zadeklaruj stałą XP_NA_POZIOM (np. 100) za pomocą define() lub const.
  3. Wyświetl na stronie powitanie z użyciem $imieUzytkownika oraz aktualny poziom ($poziom).
  4. Oblicz, ile procent do następnego poziomu ma użytkownik (operator dzielenia, mnożenia).
  5. Wyświetl to jako tekst, np. „Masz 40 XP z 100 potrzebnych do poziomu 2 (40%)”.
  6. Sprawdź typy zmiennych funkcją var_dump() albo gettype() — zobacz, jakie typy PHP przypisał automatycznie.

Uwaga: wzór na $procentPostepu w tej lekcji działa poprawnie tylko dla poziomu 1 (próg to zawsze XP_NA_POZIOM). Gdy w lekcji 4 próg kolejnego poziomu zacznie rosnąć wraz z poziomem, ten wzór przestanie być poprawny dla poziomu 2 i wyższych — uogólnimy go tam.

Podpowiedzi / fragmenty kodu

<?php
define('XP_NA_POZIOM', 100);
$imieUzytkownika = "Kama";
$xp = 40;
$poziom = 1; // na razie na sztywno, w lekcji 4 nauczymy się to wyliczać
$procentPostepu = ($xp / XP_NA_POZIOM) * 100;
echo "Witaj, $imieUzytkownika! Twój poziom: $poziom.";
echo "Masz $xp XP z " . XP_NA_POZIOM . " potrzebnych  do poziomu ".++$poziom." (" . $procentPostepu . "%)";
?>

Do samodzielnego sprawdzenia

  • ☐ Używam zmiennych zamiast wartości „na sztywno” w tekście.
  • ☐ Mam zdefiniowaną stałą XP_NA_POZIOM.
  • ☐ Na stronie widoczny jest zarówno $xp, jak i $poziom.
  • ☐ Widzę na stronie poprawnie policzony procent postępu.

Pytania kontrolne

  1. Czym różni się zmienna od stałej w PHP?
  2. Dlaczego XP_NA_POZIOM lepiej zapisać jako stałą, a nie zmienną?

PODSUMOWANIE LEKCJI

W skrócie

  • Zmienna zawsze zaczyna się od $. Po $ musi być litera lub _ – nigdy cyfra.
  • Wielkość liter ma znaczenie: $imie i $Imie to dwie różne zmienne. Literówka w nazwie = ostrzeżenie Undefined variable.
  • Nie deklarujesz typu zmiennej – PHP ustala go na podstawie przypisanej wartości. Typ sprawdzisz przez var_dump() lub gettype().
  • Podstawowe typy, które spotkasz: int (liczba całkowita), float (liczba zmiennoprzecinkowa), string (tekst), bool (true/false), array (tablica).
  • Wynik dzielenia / nie zawsze jest liczbą całkowitą: 10 / 2 to int(5), ale 10 / 4 to float(2.5).
  • Stała nie ma $, a jej wartości nie da się zmienić. Próba ponownego define() tej samej nazwy daje ostrzeżenie i wartość zostaje stara.
  • Stałej nie wstawisz w tekst w cudzysłowie – "VAT wynosi VAT%" wyświetli dosłownie słowo VAT. Stałą dołączasz kropką.
  • Kropka . łączy teksty, + dodaje liczby. To dwa różne działania.
  • = przypisuje, == porównuje wartości, === porównuje wartości i typy. 5 == "5" to true, a 5 === "5" to false.
  • $x++ najpierw zwraca starą wartość, potem zwiększa. ++$x najpierw zwiększa, potem zwraca nową wartość.
  • and / or mają niższy priorytet niż =. Zapis $w = true and false; przypisze do $w wartość true. W warunkach i przypisaniach bezpieczniej używać && i ||.
  • Operator @ tylko ukrywa komunikat, nie naprawia błędu. W PHP 8 dzielenie przez zero kończy skrypt błędem DivisionByZeroError i @ tego nie zatrzyma – przed dzieleniem trzeba sprawdzić, czy dzielnik nie jest zerem.
  • Przy referencji ($b = &$a;) obie nazwy wskazują tę samą wartość – zmiana jednej zmienia drugą. Bez & robisz kopię.

Co trzeba umieć na INF.03?

  • nadawać zmiennym nazwy, które mówią, co przechowują (np. $nazwaKontynentu, a nie $x) – to wymóg z arkusza,
  • zadeklarować zmienną i stałą oraz wyświetlić ich wartość w HTML,
  • połączyć tekst, znaczniki HTML i zmienne w jednym echo,
  • wykonać obliczenia na zmiennych (+ - * / % **) i wyświetlić wynik,
  • rozróżniać =, == i ===,
  • zbudować warunek z operatorów porównania i logicznych (&&, ||, !) – będzie potrzebny w instrukcjach warunkowych i pętlach,
  • przewidzieć wynik ++/-- oraz łączonych operatorów przypisania (+=, .=),
  • sprawdzić typ i wartość zmiennej (var_dump()) podczas szukania błędu.

Minimum, które powinno wejść w pamięć

  1. $nazwa – zmienna; nazwa nie zaczyna się od cyfry, wielkość liter ma znaczenie.
  2. define('NAZWA', wartosc); albo const NAZWA = wartosc; – stała bez $, niezmienna.
  3. . łączy teksty, .= dopisuje do tekstu.
  4. % to reszta z dzielenia, ** to potęga.
  5. = przypisuje, == porównuje wartość, === wartość i typ.
  6. $x++ – zwróć, potem zwiększ; ++$x – zwiększ, potem zwróć.
  7. && – oba warunki, || – co najmniej jeden, ! – zaprzeczenie.
  8. var_dump($zmienna) – pokazuje typ i wartość; używaj przy szukaniu błędów.

Ściągawka – najważniejsze polecenia i składnia

Zmienne i stałe

$liczbaPunktow = 40;          // int
$cena = 19.99;                // float
$imie = "Kama";               // string
$zalogowany = true;           // bool

define('XP_NA_POZIOM', 100);  // stała przez define()
const MAX_POZIOM = 10;        // stała przez const

echo "Punkty: $liczbaPunktow";               // zmienna w cudzysłowie – działa
echo "Próg: " . XP_NA_POZIOM;                // stała – tylko przez kropkę
var_dump($cena);                             // float(19.99)
echo gettype($imie);                         // string

Operatory

RodzajOperatoryPrzykład ($a = 10, $b = 3)
arytmetyczne+ - * / % **$a % $b → 1, $a ** $b → 1000
przypisania= += -= *= /= %= .=$a += $b → $a ma 13
inkrementacja++ --$a++ zwraca 10, potem $a = 11
łączenie tekstu. .=$a . $b → "103"
porównania== === != <> !== < > <= >=10 == "10" → true, 10 === "10" → false
logiczne&& \|\| ! and or xor$a > 5 && $b > 5 → false
trójkowywarunek ? tak : nie$a > 5 ? "duża" : "mała" → "duża"
referencja&$c = &$a; – $c i $a to ta sama wartość

Typowe pułapki

$Imie != $imie              // dwie różne zmienne
"VAT%"                      // stała w cudzysłowie NIE zostanie podstawiona
if ($x = 5)                 // przypisanie zamiast porównania – warunek zawsze prawdziwy
$w = true and false;        // $w = true (priorytet!) – używaj &&

Quiz – sprawdź się

1. Które nazwy zmiennych są poprawne w PHP?

a) $2gracz b) $gracz2 c) $_licznik d) $liczba punktow e) $liczbaPunktow

2. Co zostanie wyświetlone?

$a = 10;
$b = 4;
echo $a % $b . " " . $a / $b . " " . $a ** 2;

3. Co zostanie wyświetlone?

$licznik = 3;
echo $licznik++;
echo $licznik;
echo ++$licznik;

4. Jaki będzie wynik działania programu?

$x = "7";
$y = 7;
var_dump($x == $y);
var_dump($x === $y);

5. Jaką wartość będzie miała zmienna $c na końcu?

$c = 12;
$c -= 2;
$c *= 3;

6. Znajdź błąd. Co zostanie wyświetlone i jak to poprawić?

define('VAT', 23);
echo "VAT wynosi VAT%";

7. Dlaczego ten kod nie działa?

const MAX_POZIOM = 10;
MAX_POZIOM = 11;

8. Uzupełnij kod tak, aby do tekstu w $powitanie dopisać imię użytkownika (bez przepisywania całego tekstu):

$imieUzytkownika = "Kama";
$powitanie = "Witaj, ";
$powitanie ___ $imieUzytkownika;
echo $powitanie;   // Witaj, Kama

9. Jaki wynik (true / false) dadzą wyrażenia?

a) 5 > 3 && 2 > 4
b) 5 > 3 || 2 > 4
c) !(4 > 2)

10. Co wyświetli kod?

$a = 5;
$b = $a;
$a = 7;
echo "$a $b";
echo "<br>";

$c = 5;
$d = &$c;
$d = 9;
echo "$c $d";

11. Która wersja poprawnie wyświetli „zdał”, gdy $ocena jest większa lub równa 2, a w przeciwnym razie „nie zdał”?

a) echo $ocena => 2 ? "zdał" : "nie zdał";
b) echo $ocena >= 2 ? "zdał" : "nie zdał";
c) echo $ocena >= 2 : "zdał" ? "nie zdał";

12. Jaki typ pokaże var_dump() w każdym przypadku?

a) var_dump(10 / 2);
b) var_dump(10 / 4);
c) var_dump("10");

13. (TaskQuest) Mając $xp = 65 i stałą XP_NA_POZIOM = 100, napisz jedną linię, która obliczy brakujące punkty do następnego poziomu i zapisze je w zmiennej $brakujeXp. Następnie wyświetl: Brakuje Ci 35 XP do kolejnego poziomu.

ODPOWIEDZI
  1. Poprawne: b), c), e). $2gracz – zaczyna się od cyfry; $liczba punktow – zawiera spację.
  2. 2 2.5 100
  3. 345 – $licznik++ wyświetla 3 (potem zmienna ma 4), następnie 4, potem ++$licznik zwiększa do 5 i wyświetla 5.
  4. bool(true) i bool(false) – wartości są równe, ale typy różne (string i int).
  5. 30 – (12 − 2) · 3.
  6. Wyświetli się VAT wynosi VAT%, bo stała w cudzysłowie nie jest podstawiana. Poprawnie: echo "VAT wynosi " . VAT . "%";
  7. Wartości stałej nie można zmienić – przypisanie do stałej to błąd składni (Parse error). Jeśli wartość ma się zmieniać, potrzebna jest zmienna.
  8. $powitanie .= $imieUzytkownika;
  9. a) false, b) true, c) false
  10. 7 5, a w drugiej linii 9 9 – bez & powstaje kopia, z & obie zmienne wskazują tę samą wartość.
  11. b) – => nie jest operatorem porównania, a w operatorze trójkowym kolejność to warunek ? tak : nie.
  12. a) int(5), b) float(2.5), c) string(2) "10"
  13. Przykładowe rozwiązanie: $brakujeXp = XP_NA_POZIOM - $xp; echo "Brakuje Ci $brakujeXp XP do kolejnego poziomu.";