أخطاء PHP parse/syntax: كيف تتوقف عن الخوف منها وتبدأ في إصلاحها
\n\nهل سبق لك أن كتبت كودًا، وقمت بتشغيله، وكان الرد عبارة عن شاشة بيضاء وجملة مثل Parse error: syntax error, unexpected '}' in /path/to/file.php on line 42؟ إذا كان الأمر كذلك، فمرحبًا بك في النادي. هذا الخطأ هو بمثابة "طقوس العبور" الحقيقية لكل مطور PHP. على موقع Stack Overflow، جمع سؤال "PHP parse/syntax errors; and how to solve them" مئات الآلاف من المشاهدات. هذا يعني أن المشكلة مألوفة لدى الجميع حرفيًا.
الخبر السار: أخطاء PHP parse/syntax ليست حكمًا بالإعدام. إنها مجرد الطريقة التي يخبرك بها مفسر PHP: "مرحبًا، أنا لا أفهم ما تريده مني. تحقق من بناء الجملة". واليوم سوف نتعلم قراءة هذه الرسائل، وفهمها، والأهم من ذلك، إصلاحها.
\n\nفي هذه المقالة، سأعرض لكم الأسباب الأكثر شيوعًا لأخطاء بناء الجملة في PHP، وسأحلل أمثلة حقيقية من الكود، وسأقدم لكم تعليمات بسيطة خطوة بخطوة لكيفية العثور على أي خطأ وإصلاحه. هيا بنا!
\n\nما هو خطأ التحليل في PHP ولماذا يحدث؟
\n\nخطأ التحليل (أو خطأ بناء الجملة) يحدث عندما لا يستطيع PHP تحليل الكود الخاص بك. تخيل أنك تقرأ كتابًا، وفجأة تجد جملة بدون نقطة، أو كلمات مكتوبة بالمقلوب، أو صفحة كاملة مفقودة. ستشعر بالارتباك أنت أيضًا. PHP هو نفس القارئ، لكنه متطلب للغاية.
\n\nيقوم مفسر PHP بتحليل الكود من اليسار إلى اليمين، ومن الأعلى إلى الأسفل. بمجرد أن يصادف شيئًا لا يتوافق مع قواعد اللغة، يتوقف فورًا ويصدر خطأ. ولهذا السبب، غالبًا ما يؤدي خطأ بناء الجملة في PHP إلى "تعطيل" البرنامج النصي بأكمله - حيث يتوقف التنفيذ فورًا.
\n\nالأكثر غدرًا: قد تكون المشكلة الحقيقية قبل السطر الذي أشار إليه PHP في الرسالة. يخبرك المفسر أين لاحظ الخطأ، ولكن ليس دائمًا أين بدأ.
\n\nكيف تقرأ رسالة الخطأ: تحليل بالأمثلة
\n\nدعنا نحلل رسالة نموذجية:
\n\nParse error: syntax error, unexpected '}' in /var/www/index.php on line 15\n\nماذا هو مكتوب هنا؟
\n- \n
- Parse error — نوع الخطأ (خطأ في بناء الجملة). \n
- syntax error, unexpected '}' — واجه PHP الرمز
}الذي لم يتوقعه في هذا المكان. هذا يعني أن هناك قوسًا افتتاحيًا أو فاصلة منقوطة مفقودة في مكان ما أعلاه، أو أن هناك قوس إغلاق إضافي. \n - in /var/www/index.php — الملف الذي يوجد به الخطأ. \n
- on line 15 — السطر الذي لاحظ فيه PHP المشكلة. \n
حالة شائعة أخرى:
\n\nParse error: syntax error, unexpected end of file in /var/www/test.php on line 20\n\n"Unexpected end of file" تعني أن الملف انتهى، بينما كان PHP يتوقع رؤية شيء آخر. في أغلب الأحيان، يكون قوسًا متعرجًا للإغلاق } أو فاصلة منقوطة ;.
أهم 5 أخطاء بناء جملة شائعة في PHP
\n\nلقد جمعت خمس حالات تحدث في 90% من الحالات. احفظها - وستوفر ساعات من التصحيح.
\n\n1. الفاصلة المنقوطة المفقودة (;)
\n\nهذا هو ملك جميع الأخطاء. يتطلب PHP فاصلة منقوطة في نهاية كل تعبير. إذا فاتتك، فستحصل على خطأ.
\n\nمثال على المشكلة:
\n<?php\n$name = "آنا"\necho "مرحبًا، " . $name;\n?>\n\nهنا، بعد $name = "آنا" لا يوجد ;. سيقرأ PHP هذا كسطر واحد ولن يفهم أين ينتهي التعيين. سيكون الخطأ تقريبًا في السطر الذي يحتوي على echo.
الإصلاح:
\n<?php\n$name = "آنا";\necho "مرحبًا، " . $name;\n?>\n\nنصيحة: ضع دائمًا الفاصلة المنقوطة فورًا بعد كتابة سطر الكود. ستصبح هذه عادة.
\n\n2. الأقواس غير المتوازنة: المتعرجة {}، الدائرية ()، المربعة []
\n\nكل