ورقة PHP المرجعية
آخر تحديث
Hello World والوسوم
كود PHP يعيش داخل وسوم <?php ... ?>؛ وكل ما هو خارجها يُرسَل كمخرجات عادية.
| العملية | الصياغة |
|---|---|
| فتح / إغلاق PHP | <?php ... ?> |
| طباعة نص | echo "Hello, World!"; |
| طباعة منسّقة | printf("%d items", $n); |
| echo مختصر (في HTML) | <?= $name ?> |
| تعليق على سطر واحد | // comment أو # comment |
| تعليق كتلة | /* comment */ |
| منهي العبارة | ; |
| تشغيل ملف (CLI) | php index.php |
المتغيرات والأنواع
المتغيرات تبدأ بـ $ وأنواعها ديناميكية.
| العملية | الصياغة |
|---|---|
| تعريف متغير | $name = "Ada"; |
| ثابت | const PI = 3.14; أو define("PI", 3.14); |
| الأنواع القياسية | int, float, string, bool |
| Null | $x = null; |
| فحص النوع | gettype($x), is_int($x), is_array($x) |
| تحويل النوع | (int) $str, (string) $num |
| وجود / تعيين المتغير | isset($x), empty($x) |
| استيفاء السلاسل النصية | echo "Hi $name"; |
السلاسل النصية
علامات الاقتباس المزدوجة تستوفي المتغيرات؛ والمفردة حرفية.
| العملية | الصياغة |
|---|---|
| الدمج | $a . $b |
| الطول | strlen($s) |
| الأحرف الكبيرة / الصغيرة | strtoupper($s), strtolower($s) |
| سلسلة فرعية | substr($s, 0, 5) |
| إيجاد الموضع | strpos($s, "x") |
| الاستبدال | str_replace("a", "b", $s) |
| التقسيم إلى مصفوفة | explode(",", $csv) |
| دمج مصفوفة | implode(",", $arr) |
| إزالة المسافات | trim($s) |
| تنسيق سلسلة نصية | sprintf("%05.2f", $n) |
المصفوفات (بما فيها الترابطية)
نوع مصفوفة واحد يغطّي القوائم المفهرسة وخرائط المفتاح-القيمة معًا.
| العملية | الصياغة |
|---|---|
| مصفوفة مفهرسة | $nums = [1, 2, 3]; |
| مصفوفة ترابطية | $user = ["name" => "Ada", "age" => 30]; |
| الوصول إلى عنصر | $nums[0], $user["name"] |
| الإلحاق | $nums[] = 4; |
| تعيين مفتاح | $user["role"] = "admin"; |
| الطول | count($nums) |
| فحص مفتاح | isset($user["name"]), array_key_exists("name", $user) |
| إزالة عنصر | unset($nums[1]); |
| دمج المصفوفات | array_merge($a, $b) |
| التكرار key => value | foreach ($user as $k => $v) { ... } |
التحكم في التدفق
الشروط والحلقات تتبع صياغة بنمط C.
| العملية | الصياغة |
|---|---|
| If / elseif / else | if ($x > 0) { ... } elseif (...) { ... } else { ... } |
| الشرطي الثلاثي | $y = $x > 0 ? "pos" : "neg"; |
| دمج null | $name = $_GET["name"] ?? "guest"; |
| Switch | switch ($day) { case 1: ...; break; default: ... } |
| حلقة for | for ($i = 0; $i < 10; $i++) { ... } |
| حلقة while | while ($x < 100) { ... } |
| Foreach | foreach ($items as $item) { ... } |
| تعبير match | $r = match($x) { 1 => "one", default => "?" }; |
| Break / continue | break;, continue; |
الدوال
يمكن للدوال أن تعلن الأنواع والقيم الافتراضية والمعاملات المتغيرة.
| العملية | الصياغة |
|---|---|
| دالة أساسية | function add($a, $b) { return $a + $b; } |
| معاملات وقيمة إرجاع مكتوبة الأنواع | function add(int $a, int $b): int { ... } |
| قيمة افتراضية | function greet($name = "guest") { ... } |
| معاملات متغيرة | function sum(...$nums) { ... } |
| التمرير بالمرجع | function inc(&$x) { $x++; } |
| دالة مجهولة الاسم | $f = function($x) { return $x * 2; }; |
| دالة سهمية | $f = fn($x) => $x * 2; |
| استخدام متغير خارجي | function() use ($n) { ... } |
المتغيرات الفائقة
مصفوفات مدمجة متاحة في كل نطاق، غالبًا لبيانات الطلب.
| المتغير الفائق | ما يحمله |
|---|---|
$_GET | معاملات سلسلة الاستعلام من عنوان URL |
$_POST | بيانات النموذج المرسلة عبر POST |
$_REQUEST | دمج $_GET و $_POST و $_COOKIE |
$_SESSION | بيانات جلسة لكل مستخدم (بعد session_start()) |
$_COOKIE | ملفات تعريف الارتباط المرسلة من المتصفح |
$_SERVER | معلومات الخادم والطلب (REQUEST_METHOD وغيره) |
$_FILES | بيانات وصفية للملفات المرفوعة |
$_ENV | متغيرات البيئة |
دوال المصفوفات الشائعة
تأتي PHP بمئات من مساعدات المصفوفات؛ وهذه هي الأكثر استخدامًا.
| الدالة | وظيفتها |
|---|---|
array_map($fn, $arr) | تحويل كل عنصر |
array_filter($arr, $fn) | الإبقاء على العناصر التي يكون فيها رد النداء true |
array_reduce($arr, $fn, $init) | الطيّ إلى قيمة واحدة |
in_array($v, $arr) | التحقق من وجود قيمة |
array_keys($arr) / array_values($arr) | الحصول على المفاتيح أو القيم |
sort($arr) / rsort($arr) | الترتيب في المكان (تصاعدي / تنازلي) |
usort($arr, $cmp) | الترتيب بمقارِن مخصّص |
array_slice($arr, 1, 3) | استخراج جزء |
array_push($arr, $v) / array_pop($arr) | الإضافة / الإزالة من النهاية |
الأصناف والبرمجة الكائنية (OOP)
تدعم PHP الأصناف والوراثة والواجهات ومحدّدات الرؤية.
| العملية | الصياغة |
|---|---|
| تعريف صنف | class User { ... } |
| خاصية مع رؤية | public string $name; |
| باني (constructor) | function __construct($name) { $this->name = $name; } |
| ترقية الباني | function __construct(public string $name) {} |
| إنشاء نسخة | $u = new User("Ada"); |
| الوصول إلى عضو | $u->name, $u->save() |
| عضو ساكن | User::$count, User::create() |
| الوراثة | class Admin extends User { ... } |
| واجهة | interface Saveable { public function save(); } |
| تنفيذ واجهة | class User implements Saveable { ... } |
صياغة PHP التي تستخدمها أكثر من غيرها، على صفحة واحدة. ورقة PHP المرجعية هذه هي مرجع سريع للّغة الأساسية - المتغيرات والأنواع، والسلاسل النصية، والمصفوفات (بما فيها المصفوفات الترابطية)، والتحكم في التدفق، والدوال، والمتغيرات الفائقة مثل $_GET و $_POST، والأصناف.
كل ما هنا هو PHP قياسية تعمل على الإصدارات الحديثة. انسخ ما تحتاجه، أو جرّب كل مقطع برمجي مباشرة في playground الخاص بـ PHP - دون الحاجة إلى إعداد أي خادم.
الأسئلة الشائعة حول ورقة PHP المرجعية
هل ورقة PHP المرجعية هذه مجانية؟
نعم. ورقة PHP المرجعية هذه مجانية تمامًا، دون الحاجة إلى التسجيل. أضِفها إلى المفضلة وارجع إليها متى احتجت إلى البحث عن دالة سلاسل نصية أو مساعد مصفوفات أو متغير فائق.
ما الفرق بين == و === في PHP؟
== هي المقارنة المرنة: تحوّل المعاملات إلى نوع مشترك قبل المقارنة، لذا قد تتصرّف 0 == "0" بل وحتى 0 == "" بشكل مفاجئ عبر الإصدارات. أمّا === فهي المقارنة الصارمة: تُرجع true فقط عندما تتساوى القيم وتكون من النوع نفسه، لذا 0 === "0" تساوي false. فضّل === لتجنّب أخطاء تلاعب الأنواع.ما هي المصفوفات الترابطية في PHP؟
["name" => "Ada", "age" => 30]. تملك PHP نوع مصفوفة واحدًا يقوم بدور القائمة المرتّبة وخريطة المفتاح-القيمة معًا، لذا تصل إلى القيم بالمفتاح عبر $user["name"] وتتكرّر بـ foreach ($user as $key => $value).هل يمكنني التدرّب على PHP عبر الإنترنت؟
نعم. افتح playground الخاص بـ PHP لتشغيل أيّ مقطع برمجي من هذه الورقة المرجعية في متصفحك - دون الحاجة إلى خادم أو تثبيت PHP محلي. وعندما ترغب في تعلّم منظّم، تأخذك دورة PHP التفاعلية المجانية من Coddy من المتغيرات والمصفوفات إلى الدوال والبرمجة الكائنية خطوة بخطوة.
هل هذه الورقة المرجعية مناسبة للمبتدئين؟
نعم. إنها مرتّبة من المواضيع الأكثر شيوعًا (المتغيرات والسلاسل النصية والمصفوفات والتحكم في التدفق) وصولًا إلى المتقدمة (المتغيرات الفائقة والبرمجة الكائنية)، بحيث يمكنك استخدام الأقسام العلوية من اليوم الأول والتدرّج إلى البقية.