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

04 https://ideone.com/XJ8d6d:

<?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.

05 https://ideone.com/gV9SR4:

<?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 (-) :

06 https://ideone.com/TGNqb9

<?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);