ورقة 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؟
== هي المقارنة المرنة: تحوّل المعاملات إلى نوع مشترك قبل المقارنة، لذا قد تتصرّف 0 == "0" بل وحتى 0 == "" بشكل مفاجئ عبر الإصدارات. أمّا === فهي المقارنة الصارمة: تُرجع true فقط عندما تتساوى القيم وتكون من النوع نفسه، لذا 0 === "0" تساوي false. فضّل === لتجنّب أخطاء تلاعب الأنواع.ما هي المصفوفات الترابطية في PHP؟
["name" => "Ada", "age" => 30]. تملك PHP نوع مصفوفة واحدًا يقوم بدور القائمة المرتّبة وخريطة المفتاح-القيمة معًا، لذا تصل إلى القيم بالمفتاح عبر $user["name"] وتتكرّر بـ foreach ($user as $key => $value).