כל הכלים
חינם

מדריך עיון של PHP 8.3+ ניתן לחיפוש ולהדפסה — תחביר, מחרוזות, מערכים, פונקציות, מחלקות, enums, מאפיינים ותכונות מודרניות. חינם.

יסודות וסוגים

10
declare(strict_types=1);
אכיפת בדיקות סוג סקלרי קפדניות
$x = 1;
משתנים מתחילים בסימן דולר
const MAX = 100;
קבוע בזמן הידור
gettype($x)
קבלת סוג הערך
(int) $x
המרה למספר שלם
is_int($x)
פונקציית בדיקת סוג (is_string, ...)
int|string $x
הצהרת סוג איחוד
?string $x
סוג nullable (string או null)
$a ?? 'default'
אופרטור איחוד null
$a ??= 'default'
הקצאה רק אם null

מחרוזות

11
"Hello $name"
מרכאות כפולות מבצעות אינטרפולציה
'literal $x'
מרכאות בודדות הן literal
$a . $b
שרשור מחרוזות
strlen($s)
אורך מחרוזת בבתים
str_contains($s, 'a')
בדיקת תת-מחרוזת
str_starts_with($s, 'a')
בדיקת הקידומת
substr($s, 0, 3)
חילוץ חלק ממחרוזת
str_replace('a', 'b', $s)
החלפת כל המופעים
explode(',', $s)
פיצול למערך
sprintf('%05.2f', $n)
פלט מחרוזת מעוצב
trim($s)
הסרת רווחים מסביב

מערכים

11
$a = [1, 2, 3];
מערך אינדקסי
$a = ['k' => 'v'];
מערך אסוציאטיבי
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)
מיזוג מערכים
[...$a, ...$b]
פיזור/מיזוג מערכים
count($a)
מספר איברים
[$x, $y] = $a;
פירוק מערך

פונקציות

9
function f(int $a): int {}
פרמטרים והחזרה מוקלדים
function f(int $a = 1) {}
ערך פרמטר ברירת מחדל
function f(int ...$nums) {}
פרמטרים משתנים
f(...$args)
פיזור ארגומנטים
f(name: 'Sam', age: 30)
ארגומנטים בשם
$fn = fn($x) => $x + 1;
פונקציית חץ (לוכדת תחום אוטומטית)
function () use ($x) {}
closure הלוכד משתנה
$fn = strlen(...);
תחביר callable מהמעלה הראשונה
function f(): never {}
לעולם לא מחזיר (זורק או יוצא)

בקרת זרימה

9
if ($a) {} elseif ($b) {} else {}
ענפים מותנים
$a ? $b : $c
ביטוי טרינרי
$a ?: $b
טרינרי מקוצר (גיבוי falsy)
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
יציאה או דילוג על איטרציה

מחלקות ו-OOP

10
class A extends B implements C {}
ירושה וממשקים
public function __construct(private int $id) {}
קידום מאפיינים בבנאי
public readonly string $name;
בלתי ניתן לשינוי לאחר אתחול
public function f(): static {}
החזרת הסוג בקישור מאוחר
static::create()
קישור סטטי מאוחר
$obj?->method()
קריאת מתודה בטוחת null
abstract class A {}
לא ניתן ליצור מופע ישירות
trait T {} use T;
קוד אופקי לשימוש חוזר
$obj instanceof A
בדיקת סוג בזמן ריצה
A::class
מחרוזת שם מחלקה מלא

Enums

9
enum Status { case Active; case Draft; }
enum טהור
enum Status: string { case A = 'a'; }
enum מגובה (string/int)
Status::Active
הפניה למקרה enum
Status::from('a')
בנייה מערך מגבה
Status::tryFrom('x')
מחזיר null אם לא תקין
Status::cases()
מערך כל המקרים
$status->value
ערך מגבה של מקרה
$status->name
שם המקרה
enum E { public function label() {} }
ל-enums יכולות להיות מתודות

טיפול בשגיאות

9
try {} catch (Throwable $e) {}
תפיסת שגיאות וחריגות
catch (TypeError | ValueError $e)
תפיסת מספר סוגים
catch (Exception)
catch ללא לכידה (ללא משתנה)
finally {}
תמיד רץ אחרי try/catch
throw new RuntimeException('x')
זריקת חריגה
throw $e;
זריקה מחדש של החריגה הנתפסת
$x = $v ?? throw new Error();
זריקה כביטוי
$e->getMessage()
קריאת הודעת השגיאה
$e->getPrevious()
קבלת החריגה המשורשרת

Attributes ומודרני

9
#[Attribute] class Route {}
הצהרת attribute מותאם
#[Route('/home')]
החלת attribute על יעד
new ReflectionClass($x)
בחינת מחלקה דרך reflection
$ref->getAttributes()
קריאת attributes מוצהרים
json_encode($data)
סריאליזציה ל-JSON
json_decode($s, true)
פענוח JSON למערך
array_is_list($a)
true אם המפתחות 0..n בסדר
str_word_count($s)
ספירת מילים במחרוזת
$obj::class
שם מחלקה ממופע

אף רשומה אינה תואמת ל-„:q”.


שתף זאת
צריך עזרה?
נתקלת בבעיה בכלי הזה? ספר לצוות שלנו.
דיווח על בעיה

הוסיפו כלי חינמי זה לאתר שלכם — העתיקו והדביקו את הקוד שלהלן.