رموز PHP: دليل بناء الجملة للمبتدئين والمحترفين

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

رموز PHP: دليل في غابة بناء الجملة

\n\n

هل سبق لك أن نظرت إلى كود PHP لشخص آخر وشعرت وكأنك تقرأ كتابات هيروغليفية قديمة؟ أسهم، نقطتان، علامات استفهام - كل هذا يمر أمام عينيك، ويرفض عقلك فهم ما يحدث. هل هذا مألوف؟ لا تقلق، لست وحدك. موضوع "ماذا يعني هذا الرمز في PHP" هو من أكثر المواضيع شيوعًا على Stack Overflow، واليوم سنقوم بترتيب كل شيء.

\n\n

في هذه المقالة، قمنا بتجميع دليل شامل لرموز PHP - من عوامل التشغيل الأساسية إلى الإنشاءات المعقدة لبناء الجملة الحديث. ستتعلم كيفية قراءة أي كود PHP بسهولة. هيا بنا!

\n\n
\n\n

1. السهم -> (الوصول إلى الكائن)

\n\n

الضيف الأكثر شيوعًا في أي مشروع PHP. يُستخدم السهم للوصول إلى خصائص وطرق الكائن. إذا رأيت $obj->prop - فهذا يعني أننا نصل إلى الخاصية prop للكائن $obj.

\n\n
<?php\nclass User {\n    public $name = 'أليكسي';\n    public function greet() {\n        return "مرحبًا، {$this->name}!";\n    }\n}\n\n$user = new User();\necho $user->name;      // أليكسي\necho $user->greet();   // مرحبًا، أليكسي!\n?>
\n\n

لاحظ: داخل الفئة نستخدم $this->name - وهو نفس السهم، لكنه يشير إلى الكائن الحالي.

\n\n

2. النقطتان المزدوجتان :: (عامل دقة النطاق)

\n\n

النقطتان المزدوجتان هما عامل دقة النطاق. يُستخدمان للوصول إلى الخصائص الثابتة والطرق والثوابت للفئة. تذكر: إذا رأيت :: - فهذا يعني أنك تصل إلى شيء ينتمي إلى الفئة، وليس إلى نسختها.

\n\n
<?php\nclass Config {\n    const SITE_NAME = 'PythonLib';\n    public static $version = '1.0';\n    public static function info() {\n        return self::SITE_NAME . ' v' . self::$version;\n    }\n}\n\necho Config::SITE_NAME;  // PythonLib\necho Config::$version;   // 1.0\necho Config::info();     // PythonLib v1.0\n?>
\n\n

هنا self:: هو مرجع للفئة الحالية من داخلها. ومن الخارج نكتب اسم_الفئة::.

\n\n

3. عامل الدمج مع null (??)

\n\n

أحد أكثر العوامل فائدة، والذي ظهر في PHP 7. يسمح بمعالجة أنيقة للحالات التي قد يكون فيها المتغير غير معرف أو يساوي null. التعبير $a ?? $b سيعيد $a إذا كان موجودًا وليس null، وإلا سيعيد $b.

\n\n
<?php\n$username = $_GET['user'] ?? 'ضيف';\n// بدلاً من البناء الطويل:\n// $username = isset($_GET['user']) ? $_GET['user'] : 'ضيف';\n\n// يمكن استخدامه في سلسلة:\n$name = $firstName ?? $nickname ?? 'مجهول';\n?>
\n\n

4. عامل المركبة الفضائية <=> (Spaceship)

\n\n

عامل المقارنة ثلاثي الاتجاهات. يعيد -1 أو 0 أو 1 اعتمادًا على ما إذا كانت القيمة اليسرى أقل أو مساوية أو أكبر من القيمة اليمنى. مثالي للترتيب.

\n\n
<?php\necho 1 <=> 2;  // -1 (1 أقل من 2)\necho 2 <=> 2;  // 0  (متساويان)\necho 3 <=> 2;  // 1  (3 أكبر من 2)\n\n// مثال مع ترتيب مصفوفة من الكائنات\nusort($users, function($a, $b) {\n    return $a->age <=> $b->age;\n});\n?>
\n\n

5. علامة الحذف ... (عامل الانتشار / المتغير)

\n\n

ثلاث نقاط يمكن أن تعني شيئين. الأول - فك المصفوفة (spread) في PHP 7.4+. الثاني - الإشارة إلى عدد متغير من وسائط الدالة (variadic).

\n\n
<?php\n// 1. Spread للمصفوفات\n$parts = ['تفاحة', 'كمثرى'];\n$fruits = ['موز', ...$parts, 'برتقال'];\n// ['موز', 'تفاحة', 'كمثرى', 'برتقال']\n\n// 2. وسائط متغيرة\nfunction sum(...$numbers) {\n    return array_sum($numbers);\n}\necho sum(1, 2, 3, 4); // 10\n?>
\n\n

6. علامة الاستفهام مع النقطتين ?: (Ternary)

\n\n

العامل الثلاثي - اختصار لـ if-else. $a ? $b : $c سيعيد $b إذا

المدونات

توصيات الكتب