Podstawowa składnia języka PHP

<?php
// Tu wpisujemy kod PHP
?>

Podstawowe funkcje PHP nie są wrażliwe na wiElKość znAkóW. Przykładowo możemy napisać coś takiego:

<!DOCTYPE html>
<html>
<body>

<?php
ECHO "Hello World!<br>";
echo "Hello World!<br>";
EcHo "Hello World!<br>";
?> 

</body>
</html>

I w efekcie otrzymamy stronę o treści:

Hello World!
Hello World!
Hello World!

Jednakże gdy definiujemy i używamy zmiennych, należy zachować wielkość znaków:

<!DOCTYPE html>
<html>
<body>

<?php
$kolor = "czerwony";
echo "Mój kot jest " . $color . "<br>";
echo "Mój dom jest " . $COLOR . "<br>";
echo "Moja łódka jest " . $coLOR . "<br>";
?> 

</body>
</html>
Mój kot jest czerwony
Mój dom jest 
Moja łódka jest 

Wyświetlanie danych

$assoc = array(
        'jogurt' => '2 zł',
        'maslo' => '1.50 zł',
        'zapiekanka' => '4 zł',
        'gazeta'  => '5 zł'
    );;

echo 'Tekst do wyświetlenia';

print 'Tekst do wyświetlenia'; 
// Print różni się od echo tym, że jeśli będzie "pusty", to zwróci 1,
// gdy echo nie zwróci niczego. Mówią, że echo jest nieco szybsze od print

print_r($assoc);
// Zwraca wartość w miarę przystępny dla człowieka sposób - szczególnie przydatne do tablic,
// gdzie zwykły print wyświetli tylko typ danej

var_dump($assoc);
// Zwraca typ danych oraz wartość

Typy danych

  • String
  • Integer
  • Float (liczba zmiennoprzecinkowa - zwana także double)
  • Boolean
  • Array
  • Object
  • NULL
  • Resource

Instrukcja warunkowa

warunek ? instrukcja jeśli zwraca true : jeśli zwraca false;

if (warunek) {
    instrukcja;
} else {
    instrukcja;
}

if (warunek) {
    instrukcja;
} else if (warunek) {
    instrukcja;
} else {
    instrukcja;
}

Komentarze

// Komentarz liniowy

# To też jest komentarz liniowy

/* Komentarz
blokowy
wieloliniowy
*/

/* Komentarz
* używany do
* dokumentacji
*/

Formluarze - $_GET, $_POST

<html>
<body>

<form action="witaj.php" method="post">
Imię: <input type="text" name="name"><br> <!-- Zwróć uwagę na atrybuty name -->
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>

Plik welcome.php

<html>
<body>

Witaj, <?php echo $_POST["name"]; ?><br>
Twój adres mailowy to: <?php echo $_POST["email"]; ?>

</body>
</html>

I to, co wyświetla welcome.php:

Witaj, Jan
Twój adres mailowy to: [email protected]

Obsługa formularzy z polami wszelkiego typu

Jedyne co trzeba pamiętać, to to, że każde pole formularza zwraca string. Jeżeli chcemy odpowiednio na nich operować, musimy wykonać konwersję typu danych.

Do zmiany typu danych można użyć funkcji settype($zmienna, 'typ danej (np. int, float, str)')

Pętle

while

<!DOCTYPE html>
<html>
<body>

<?php  
$x = 1;

while($x <= 5) {
  echo "Numer: $x <br>";
  $x++;
} 
?>  

</body>
</html>
Numer: 1
Numer: 2
Numer: 3
Numer: 4
Numer: 5

do...while

<!DOCTYPE html>
<html>
<body>

<?php 
$x = 1;

do {
  echo "Numer: $x <br>";
  $x++;
} while ($x <= 5);
?>

</body>
</html>
Numer: 1
Numer: 2
Numer: 3
Numer: 4
Numer: 5

Różnica między while a do...while polega na tym, że przy:

  • while - aby pętla się wykonała, warunek musi zostać spełniony
  • do...while - pętla wykona się co najmniej 1 raz. Aby wykonane zostały kolejne pętle, warunek musi zostać spełniony

for

<!DOCTYPE html>
<html>
<body>

<?php  
for ($x = 0; $x <= 10; $x++) {
  echo "Numer: $x <br>";
}
?>  

</body>
</html>
Numer: 0
Numer: 1
Numer: 2
Numer: 3
Numer: 4
Numer: 5
Numer: 6
Numer: 7
Numer: 8
Numer: 9
Numer: 10

foreach

Pętla przydatna do obsługi tablic asocjacyjnych

<?php
$kolory = array("czerwony", "zielony", "niebieski", "żółty");

foreach ($kolory as $wartosc) {
  echo "$wartosc <br>";
}
?>
czerwony
zielony
niebieski
żółty

"Oczyszczanie" danych z formularzy

htmlspecialchars()

<?php
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
?>
<!DOCTYPE html>
<html>
<body>
This is some &lt;b&gt;bold&lt;/b&gt; text.
</body>
</html>

trim()

W obsłudze formularzy - usuwa spacje omyłkowo wpisane przez użytkownika
Ogólnie - czyści napis z określonych znaków z lewej i prawej strony

<?php
$str = "   Witaj Świecie!     ";
echo $str . "<br>";
echo trim($str," ");
?>
   Witaj Świecie!     
Witaj świecie!

stripslashes()

<!DOCTYPE html>
<html>
<body>

<?php
echo "Who\'s Peter Griffin?";
echo stripslashes("Who\'s Peter Griffin?");
?>

</body>
</html>
<!DOCTYPE html>
<html>
<body>

Who\'s Peter Griffin?
Who's Peter Griffin?

</body>
</html>

Zmienna $_SERVER

REQUEST_METHOD

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  // wyświetli dane z formularza tylko wtedy, gdy metodą przesyłania danych będzie POST
  $name = $_REQUEST['fname']; // Następnie wypisuje dane na podstawie wcześniej określonej metody
  if (empty($name)) {
    echo "Niczego nie wpisano w pole Imię";
  } else {
    echo $name;
  }
}
?>

PHP_SELF

Zwraca ścieżkę do aktualnie wykonywanego skryptu PHP