Συνοπτικός οδηγός PHP
Μια αναζητήσιμη, εκτυπώσιμη αναφορά PHP 8.3+ — σύνταξη, strings, arrays, συναρτήσεις, κλάσεις, enums, attributes και σύγχρονα χαρακτηριστικά. Δωρεάν.
Βασικά & τύποι
10declare(strict_types=1);
Επιβολή αυστηρών ελέγχων scalar τύπων
$x = 1;
Οι μεταβλητές ξεκινούν με δολάριο
const MAX = 100;
Σταθερά compile-time
gettype($x)
Λήψη τύπου τιμής
(int) $x
Cast σε integer
is_int($x)
Βοηθός ελέγχου τύπου (is_string, ...)
int|string $x
Δήλωση union τύπου
?string $x
Nullable τύπος (string ή null)
$a ?? 'default'
Τελεστής null coalescing
$a ??= 'default'
Εκχώρηση μόνο αν null
Συμβολοσειρές (strings)
11"Hello $name"
Τα διπλά εισαγωγικά παρεμβάλλουν μεταβλητές
'literal $x'
Τα μονά εισαγωγικά είναι κυριολεκτικά
$a . $b
Συνένωση strings
strlen($s)
Μήκος string σε bytes
str_contains($s, 'a')
Έλεγχος για substring
str_starts_with($s, 'a')
Έλεγχος προθέματος
substr($s, 0, 3)
Εξαγωγή τμήματος string
str_replace('a', 'b', $s)
Αντικατάσταση όλων των εμφανίσεων
explode(',', $s)
Διαχωρισμός σε array
sprintf('%05.2f', $n)
Μορφοποιημένη έξοδος string
trim($s)
Αφαίρεση περιβάλλοντος κενού
Πίνακες (arrays)
11$a = [1, 2, 3];
Indexed array literal (αριθμημένος)
$a = ['k' => 'v'];
Associative array (συσχετιστικός)
array_map(fn($x) => $x * 2, $a)
Μετασχηματισμός κάθε στοιχείου
array_filter($a, fn($x) => $x > 0)
Διατήρηση στοιχείων που ταιριάζουν
array_reduce($a, $fn, 0)
Συμπύκνωση σε μία τιμή
in_array($v, $a, true)
Αυστηρός έλεγχος τιμής
array_keys($a)
Λήψη όλων των κλειδιών
array_merge($a, $b)
Συγχώνευση arrays
[...$a, ...$b]
Spread/συγχώνευση arrays
count($a)
Πλήθος στοιχείων
[$x, $y] = $a;
Destructuring array
Συναρτήσεις
9function f(int $a): int {}
Τυποποιημένες παράμετροι και επιστροφή
function f(int $a = 1) {}
Προεπιλεγμένη τιμή παραμέτρου
function f(int ...$nums) {}
Variadic παράμετροι
f(...$args)
Spread ορίσματα
f(name: 'Sam', age: 30)
Επώνυμα ορίσματα
$fn = fn($x) => $x + 1;
Arrow function (αυτόματη σύλληψη scope)
function () use ($x) {}
Closure που συλλαμβάνει μεταβλητή
$fn = strlen(...);
Σύνταξη first-class callable
function f(): never {}
Δεν επιστρέφει ποτέ (throws ή exit)
Ροή ελέγχου
9if ($a) {} elseif ($b) {} else {}
Διακλαδώσεις συνθήκης
$a ? $b : $c
Τριαδική έκφραση
$a ?: $b
Σύντομο ternary (falsy fallback)
match ($x) { 1, 2 => 'a', default => 'b' }
Αυστηρό match βασισμένο σε έκφραση
switch ($x) { case 1: break; }
Χαλαρή διακλάδωση πολλαπλών δρόμων
foreach ($a as $k => $v) {}
Επανάληψη κλειδιών και τιμών
for ($i = 0; $i < 10; $i++) {}
Μετρημένος βρόχος
while ($cond) {}
Βρόχος όσο ισχύει συνθήκη
break / continue
Έξοδος ή παράλειψη επανάληψης
Classes & OOP (αντικειμενοστρεφής)
10class A extends B implements C {}
Κληρονομικότητα και interfaces
public function __construct(private int $id) {}
Promotion ιδιοτήτων constructor
public readonly string $name;
Αμετάβλητο μετά την αρχικοποίηση
public function f(): static {}
Επιστροφή late-bound τύπου
static::create()
Όψιμη στατική σύνδεση (late static binding)
$obj?->method()
Null-safe κλήση μεθόδου
abstract class A {}
Δεν μπορεί να instantiate απευθείας
trait T {} use T;
Επαναχρησιμοποιήσιμος οριζόντιος κώδικας
$obj instanceof A
Έλεγχος τύπου σε runtime
A::class
String πλήρως προσδιορισμένου ονόματος class
Enums
9enum Status { case Active; case Draft; }
Καθαρό enum
enum Status: string { case A = 'a'; }
Backed enum (string/int)
Status::Active
Αναφορά σε enum case
Status::from('a')
Δημιουργία από backing τιμή
Status::tryFrom('x')
Επιστρέφει null αν άκυρο
Status::cases()
Array όλων των cases
$status->value
Backing τιμή ενός case
$status->name
Όνομα του case
enum E { public function label() {} }
Τα enums μπορούν να έχουν μεθόδους
Διαχείριση σφαλμάτων
9try {} catch (Throwable $e) {}
Σύλληψη σφαλμάτων και exceptions
catch (TypeError | ValueError $e)
Σύλληψη πολλαπλών τύπων
catch (Exception)
Catch χωρίς σύλληψη (χωρίς μεταβλητή)
finally {}
Εκτελείται πάντα μετά το try/catch
throw new RuntimeException('x')
Ρίψη exception
throw $e;
Επανάρριψη του exception
$x = $v ?? throw new Error();
Ρίψη ως έκφραση
$e->getMessage()
Ανάγνωση μηνύματος σφάλματος
$e->getPrevious()
Λήψη αλυσιδωτού exception
Attributes & σύγχρονα
9#[Attribute] class Route {}
Δήλωση custom attribute
#[Route('/home')]
Εφαρμογή attribute σε στόχο
new ReflectionClass($x)
Επιθεώρηση class μέσω reflection
$ref->getAttributes()
Ανάγνωση δηλωμένων attributes
json_encode($data)
Σειριοποίηση σε JSON
json_decode($s, true)
Αποκωδικοποίηση JSON σε array
array_is_list($a)
True αν τα κλειδιά είναι 0..n στη σειρά
str_word_count($s)
Μέτρηση λέξεων σε string
$obj::class
Όνομα class από instance
Καμία καταχώριση δεν ταιριάζει με «:q».
Χρειάζεστε βοήθεια;
Βρήκατε πρόβλημα με αυτό το εργαλείο; Ενημερώστε μας.