ورقة PHP المرجعية
مرجع PHP 8.3+ قابل للبحث والطباعة — البنية والسلاسل والمصفوفات والدوال والأصناف والتعدادات والخصائص والميزات الحديثة. مجاني.
الأساسيات والأنواع
10declare(strict_types=1);
فرض فحص أنواع scalar الصارم
$x = 1;
المتغيرات تبدأ بعلامة الدولار
const MAX = 100;
ثابت وقت الترجمة
gettype($x)
الحصول على نوع قيمة
(int) $x
التحويل إلى عدد صحيح
is_int($x)
مساعد فحص النوع (is_string, ...)
int|string $x
إعلان نوع اتحادي
?string $x
نوع قابل للعدم (string أو null)
$a ?? 'default'
معامل دمج العدم
$a ??= 'default'
التعيين فقط إن كان null
السلاسل النصية
11"Hello $name"
علامات التنصيص المزدوجة تُدرج المتغيرات
'literal $x'
علامات التنصيص المفردة حرفية
$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;
تفكيك المصفوفة
الدوال
9function 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) {}
إغلاق يلتقط متغيراً
$fn = strlen(...);
صيغة callable من الدرجة الأولى
function f(): never {}
لا يُرجع أبداً (يرمي أو يخرج)
التحكم في التدفق
9if ($a) {} elseif ($b) {} else {}
فروع شرطية
$a ? $b : $c
تعبير ثلاثي
$a ?: $b
ثلاثي مختصر (احتياطي للقيم الزائفة)
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
الخروج أو تخطي تكرار
الأصناف والبرمجة الكائنية
10class A extends B implements C {}
الوراثة والواجهات
public function __construct(private int $id) {}
ترقية خصائص المُنشئ
public readonly string $name;
غير قابل للتغيير بعد التهيئة
public function f(): static {}
إرجاع النوع المرتبط متأخراً
static::create()
ربط ثابت متأخر
$obj?->method()
استدعاء دالة آمن من العدم
abstract class A {}
لا يمكن إنشاء كائن منه مباشرة
trait T {} use T;
كود أفقي قابل لإعادة الاستخدام
$obj instanceof A
فحص النوع وقت التشغيل
A::class
اسم الصنف المؤهل بالكامل كسلسلة
التعدادات
9enum Status { case Active; case Draft; }
تعداد خالص
enum Status: string { case A = 'a'; }
تعداد مدعوم (string/int)
Status::Active
الإشارة إلى حالة تعداد
Status::from('a')
البناء من قيمة داعمة
Status::tryFrom('x')
يُرجع null إن كان غير صالح
Status::cases()
مصفوفة بكل الحالات
$status->value
القيمة الداعمة لحالة
$status->name
اسم الحالة
enum E { public function label() {} }
يمكن للتعدادات أن تحوي دوالاً
معالجة الأخطاء
9try {} 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()
الحصول على الاستثناء المتسلسل
السمات والحديث
9#[Attribute] class Route {}
إعلان سمة مخصصة
#[Route('/home')]
تطبيق سمة على هدف
new ReflectionClass($x)
فحص صنف عبر الانعكاس
$ref->getAttributes()
قراءة السمات المُعلنة
json_encode($data)
التسلسل إلى JSON
json_decode($s, true)
فك JSON إلى مصفوفة
array_is_list($a)
true إن كانت المفاتيح 0..n بالترتيب
str_word_count($s)
عد الكلمات في سلسلة
$obj::class
اسم الصنف من كائن
لا يوجد إدخال يطابق “:q”.
هل تحتاج إلى مساعدة؟
هل واجهت مشكلة في هذه الأداة؟ أخبر فريقنا.