PHP– interpretowany skryptowy język programowania zaprojektowany do generowania stron internetowych i budowania aplikacji webowych w czasie rzeczywistym.
PHP jest najczęściej stosowany do tworzenia skryptów po stronie serwera WWW, ale może być on również używany do przetwarzania danych z poziomu wiersza poleceń, a nawet do pisania programów pracujących w trybie graficznym. Implementacja PHP wraz z serwerem WWW Apache oraz serwerem baz danych MySQL określana jest jako platforma AMP (w środowisku Linux – LAMP, w Windows – WAMP).
Języki back-endowe, takie jak PHP, zajmują się mechaniką działania serwisów internetowych i to właśnie dlatego skrypty te stanowią zawsze tajemnicę twórców witryn. PHP obsłuży na serwerze np. zachowanie algorytmu logowania, koszyk w sklepie internetowym, rejestrację użytkownika w grze przeglądarkowej.
Typy danych i ich zmienne
| Typ | Opis | |
|---|---|---|
| string | Łańcuch tekstowy | Objęty znakami cudzysłowu lub składnią here document |
| int | Liczba całkowita | Obsługiwane są stałe całkowite w notacji dziesiętnej, szesnastkowej oraz ósemkowej |
| float | Liczba zmiennoprzecinkowa | |
| bool | Typ logiczny | Do fałszu konwertowanych jest wiele postaci zmiennych innych typów |
| array | Tablica | Przechowuje dowolną liczbę elementów dowolnego typu. Indeksowana ciągami znaków lub liczbami całkowitymi |
| object | Obiekt | |
| null | Zmienna niezdefiniowana | |
| resource | Zasób spoza PHP | Przykładowo deskryptor pliku lub połączenie z bazą danych |
Rozróżniamy trzy typy komentarzy w PHP : Pierwszym z nich jest wieloliniowy:
<?php /* To jest komentarz wieloliniowy, zamykany znacznikiem: */ ?>
Kolejnym jest jednoliniowy:
<?php //to jest komentarz jednoliniowy, który nie potrzebuje zamknięcia ?>
Ostatnim jest jednoliniowy (w innej wersji):
<?php # to jest komentarz jednoliniowy, który nie potrzebuje zamknięcia ?>
Klasy i obiekty
Elementy programowania obiektowego pojawiły się w PHP 3. W PHP 4 udostępniono statyczne wywoływanie metod. W PHP 5 możliwości zostały rozszerzone między innymi o statyczne zmienne klasy, obsługę interfejsów, kontrolę dostępu, kontrolę typów czy klasy i metody abstrakcyjne. Model PHP wzoruje się na językach C++ i Java. Od wersji 5 PHP posiada mechanizmy refleksyjne, które pozwalają na analizę klas, funkcji oraz rozszerzeń. Bez zainstalowania odpowiedniego rozszerzenia nie umożliwiają one jednak zmiany tych struktur w czasie wykonywania, przykład klasy:
<?php
class Przyklad
{
public function powiedzCzesc($imie)
{
return 'Cześć, ' . $imie;
}
}
$objPrzyklad = new Przyklad ();
echo $objPrzyklad->powiedzCzesc ( 'Stanislaw' );
?>
Obsługa baz danych
PHP obsługuje większość znanych baz danych: MySQL, PostgreSQL, Oracle, MS SQL, DB2. Poniżej przedstawiono wykonanie zapytania SQL na bazie danych MySQL przy pomocy biblioteki PDO dla PHP5:
<?php
try
{
$pdo = new PDO ( 'mysql:host=localhost;dbname=articles', 'root', 'root' );
$pdo->setAttribute ( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$stmt = $pdo->query ( 'SELECT id, name, content FROM articles ORDER BY id' );
echo '<ul>';
foreach ( $stmt as $row )
{
echo '<h1>' . $row ['name'] . '</h1>';
echo $row ['content'] . '<hr />';
}
$stmt->closeCursor ();
echo '</ul>';
} catch ( PDOException $e )
{
echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage ();
}
?>
PHP I HTML
Pierwszy skrypt w PHP.
<html>
<head>
<title>Pierwszy skrypt php</title>
</head>
<body>
<?php
echo "Przykładowy tekst na stronie";
?>
</body>
</html>
Stałe i zmienne
<?
define("NR_TEL","666258147");
$nr_tel = "792297792";
?>
<html>
<head>
<title>Zmienne i stale</title>
</head>
<body>
<?
echo NR_TEL;
echo $nr_tel;
?>
</body>
</html>
Warunek if… else…
<?php
$a = 7; // przypisujemy wartość zmiennej $a
if ($a%2 > 0) // reszta z dzielenia przez 2
{
echo "Liczba nieparzysta";
}
else // brak reszty z dzielenia przez 2
{
echo "Liczba parzysta";
}
?>
Bazy danych
<?php
/******************************************************
* connection.php
* konfiguracja połączenia z bazą danych
******************************************************/
function connection() {
// serwer
$mysql_server = "localhost";
// admin
$mysql_admin = "uzytkownik";
// hasło
$mysql_pass = "haslo";
// nazwa baza
$mysql_db = "baza_danych";
// nawiązujemy połączenie z serwerem MySQL
@mysql_connect($mysql_server, $mysql_admin, $mysql_pass)
or die('Brak połączenia z serwerem MySQL.');
// łączymy się z bazą danych
@mysql_select_db($mysql_db)
or die('Błąd wyboru bazy danych.');
}
?>
Potem wystarczy taki plik podłączyć za pomocą instrukcji require() i wywołać funkcję connection(), aby mieć aktywne połączenie do serwera i bazy danych.
<?php
// podłączamy plik connection.php
require "connection.php";
// wywołujemy funkcję connection()
connection();