PHP. Podstawy.
36 prostych przykładów ilustrujących podstawowe konstrukcje języka PHP.
Źródła dostępne na: https://github.com/tenarjw/php1/tree/master/basis
Jak testować
1) z konsoli
$php -a
php > include "ex12.php";
albo po prostu:
$ php ex12.php
2) Przy pomocy serwera wbudowanego php:
$ php -S localhost:8000
W przeglądarce piszemy http://localhost:8000/ex12.php
3) Na serwerze www z PHP (kopiujemy np. przez ftp). Jeśli ex12.php w katalogu dir serwera www.przyklady.pl, to w przeglądarce piszemy: http://www.przyklady.pl/dir/ex12.php
Najprostsze przykłady
(01) https://ideone.com/CNR43w:
<html>
<head>
<meta charset="utf8" />
</head>
<body>
<?php
echo '<h1>Można mieszać kod php i zwykły HTML</h1>';
echo "<p>Jednak nie jest to obecnie zalecanym sposobem programowania<br />
(standard MVC)";
?>
<p>Naciśnij Ctr+U by zobaczyć efekty</p>
</body>
</html>
==
<?php
print "Hello World";
echo "<br />print i echo - alternatywne funkcje druku";
Łańcuchy znaków ujmujemy w apostrofy (') lub cudzysłów ("). Mogą one zajmować więcej niż 1 wiersz. (02) https://ideone.com/qT1px5:
<html>
<head>
<meta charset="utf8"/>
</head>
<body>
<?php
echo '<h1>Można mieszać kod php i zwykły HTML</h1>';
echo "<p>Jednak nie jest to obecnie zalecanym sposobem programowania<br />
(standard MVC)";
?>
<p>Naciśnij Ctr+U by zobaczyć efekty</p>
</body>
</html>
Pliki ze skryptami” możemy wstawiać jeden w drugi – za pomocą jednej z komend:
- include: wstaw za każdym razem, gdy wywołana instrukcja.
- require: tak jakinclude,alepowoduje błąd (a nie tylko ostrzeżenie) gdy brak pliku.
- include_once: tak jakinclude,ale tylko raz dołącza ten sam plik.
- require_once: tak jakrequire,ale tylko raz sołącza ten sam plik.
Komentarze (03) https://ideone.com/XJ8d6d:
<?php
/*
* Znak ukośnika (slash) z gwiazdką oznacza początek komentarza.
* W odwrotnej kolejności (gwiazdka ukośnik) - koniec komentarza.
*/
// po dwóch ukośnikach umieszczamy komentarz jednowierszowy (nie wymaga końca)
echo 'komentarze nie są wyświetlane na stronie'; // po komentarzu jednowierszoym nie ma kodu
Zmienne
<?php
// zmienne: identyfikator rozpoczyna się znakiem dolara ($)
$a = 22; // znak = oznacza zmianę zmiennej (ustawienie wartości)
$b = 33;
$c = $a + $b; // można używać wyrażeń
echo $c; // echo (print) może wyświetlić zawartoś zmiennej
// poprawne identyfikatory zmiennych
$litery_cyfry123_podkreslenie = '1';
$_podkreslenie_jak_litery = 2;
$camelCase = 3; // Duże i małe litery
/* niepoprawne:
$1cyfra = 4; // nie może zaczyna się od cyfty
$dolar$wSrodku = 5; // nie może zawierać dodatkowych dolarów
$a&^inne = 6; // ani innych znaków
$błąd = 7; // nie może zawieać znaków innych niż łacińskie (w tym polskich)
$bez spacji = 8; // ani spacji
*/
Typy danych
- Boolean:logiczne (truelub false)
- Integers:Liczby całkowite
- Float:Liczby rzeczywiste (zmiennoprzecinkowe)
- Strings:Łańcuchy znaków
Typy zmiennych są ustawiane w chwili wstawienia do nich danych. W ten sam sposób zmieniamy typ.
<?php
// typ i zawartoś danych można wyświetlić używając var_dump
$liczba = 123; var_dump($liczba);
$liczba = 'abc'; var_dump($liczba);
$napis = "12";
// w wyrażeniach PHP potrafi zamienić napis na liczbę
var_dump($napis+12);
var_dump(12+$napis);
var_dump($liczba>0); // logiczne
var_dump(12.2); // zmiennopozycyjne
Wynik:
int
123
string
'abc'
(length=3)
int
24
int
24
boolean
false
float
12.2
Operatory
Plus, minus, mnożenie, dzielenie : (+,-,*,/)modulo(%)potęga (**)negacja (-) :
<?php
$x = 12;
$y = 4;
print '<br />';print $x + $y; // 16
print '<br />';print $x - $y; // 8
print '<br />';print $x * $y; // 48
print '<br />';print $x / $y; // 3
print '<br />';print $x % $y; // 0
print '<br />';print $x ** $y; // 20736
print '<br />';print -$x; // -12
Operatory przypisania
[07] https://ideone.com/a18HUt:
<?php
$x = 12;
$x+=1; print $x; // 13
print '<br />';
$x-=3;print $x; // 10
print '<br />';
$x*=4;print $x; // 40
Operatory porównania
Mniejszy (<), większy (>), mniejszy – równy (<=), większy równy (>=), równy (==), identyczny (===), nierówny (!=lub <>), nieidentyczny (!==).
[08] https://ideone.com/NBX8xl:
<?php
$x = 12; $y=12.0;
var_dump($x==$y); // równe
var_dump($x===$y); // ale nie identyczne
var_dump($x<$y);
var_dump($x<=$y);
var_dump($x!=$y);
var_dump($x<>$y);
Wynik:
boolean
true
boolean
false
boolean
false
boolean
true
Operatory logiczne
[09] https://ideone.com/E4s81d:
<?php
$x = 12; $y=12.0;
var_dump($x>$y || $x<=$y); // lub - true
var_dump($x>$y && $x<$y); // i - false
var_dump(! $x>$y); // negacja - false
Incrementi decrement
[10] https://ideone.com/WoOSIg
<?php
$x = 13;
var_dump($x++); // druk 13, potem $x = $x+1
$y = ++$x; // $x i $y zwiększone o 1 (15)
var_dump($x, $y);
$y = $x--; // zmienia się tylko $x (znaki po zmiennej)
var_dump($x, $y);
Pierwszeństwo operatorów
Operator | Type | ||
---|---|---|---|
** | Arithmetic | ||
++,-- | Increasing/decreasing | ||
! | Logical | ||
*,/,% | Arithmetic | ||
+,- | Arithmetic | ||
<,<=,>,>= | Comparison | ||
==,!=,===,!== | Comparison | ||
&& | Logical | ||
\ | \ | Logical | |
=,+=,-=,*=,/=,%=,**= | Assignment |
[11] https://ideone.com/jAc1IO
<?php
$a = 1;
$b = 3;
$c = true;
$d = false;
$e = $a + $b > 5 || $c; // true
var_dump($e);
$f = $e == true && !$d; // true
var_dump($f);
$g = ($a + $b) * 2 + 3 * 4; // 20
var_dump($g);