كيف تجتاز مقابلة PHP: أهم الأسئلة من الألف إلى الياء

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

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

ابدأ الدورة

كيف تجتاز مقابلة PHP: أهم الأسئلة من الألف إلى الياء

\n\n

مقابلة وظيفة مطور PHP ليست مجرد اختبار لمعرفة بناء الجملة. يريد أصحاب العمل رؤية كيف تفكر، وكيف تحل المشكلات، ومدى عمق فهمك لنظام اللغة البيئي. لمساعدتك على الاستعداد، قمنا بتجميع أهم أسئلة PHP من الألف إلى الياء، مقسمة إلى مواضيع رئيسية: من أساسيات OOP إلى العمل مع قواعد البيانات والأمان.

\n\n

هذه المقالة هي قائمة التحقق الخاصة بك لاجتياز المقابلة بنجاح. ادرسها، وتدرب على أمثلة الكود، وستشعر بالثقة.

\n\n

1. أساسيات PHP و OOP (البرمجة كائنية التوجه)

\n\n

لنبدأ بالأساسيات. بدون فهم OOP في PHP الحديث، لا يمكنك المضي قدمًا. غالبًا ما يطرح المحاورون أسئلة تختبر فهمك للمبادئ.

\n\n

سؤال: ما هو التغليف، الوراثة، وتعدد الأشكال؟

\n

هذه هي "الركائز الثلاث" لـ OOP. القدرة على شرحها بمثال هي مهارة إلزامية.

\n
    \n
  • التغليف — إخفاء التنفيذ الداخلي للكائن. يتم الوصول إلى البيانات من خلال الطرق العامة (getters/setters).
  • \n
  • الوراثة — إمكانية إنشاء فئة جديدة بناءً على فئة موجودة (الأصل).
  • \n
  • تعدد الأشكال — قدرة كائنات من فئات مختلفة على معالجة نفس الطريقة بطريقتها الخاصة.
  • \n
\n\n
<?php\n// مثال على التغليف\nclass User {\n    private string $name;\n\n    public function setName(string $name): void {\n        $this->name = htmlspecialchars($name); // حماية من XSS\n    }\n\n    public function getName(): string {\n        return $this->name;\n    }\n}\n\n// مثال على الوراثة وتعدد الأشكال\nabstract class Animal {\n    abstract public function makeSound(): string;\n}\n\nclass Dog extends Animal {\n    public function makeSound(): string {\n        return "نباح!";\n    }\n}\n\nclass Cat extends Animal {\n    public function makeSound(): string {\n        return "مواء!";\n    }\n}\n\n$animals = [new Dog(), new Cat()];\nforeach ($animals as $animal) {\n    echo $animal->makeSound() . " "; // سيطبع: نباح! مواء!\n}\n?>
\n\n

سؤال: ما الفرق بين الواجهة والفئة المجردة؟

\n

هذا سؤال كلاسيكي. الواجهة تحدد عقدًا (توقيعات الطرق فقط)، بينما يمكن للفئة المجردة أن تحتوي على تنفيذ افتراضي وخصائص.

\n\n

2. العمل مع قواعد البيانات و SQL

\n\n

نادرًا ما يعمل PHP بمعزل عن قواعد البيانات. أسئلة حول MySQL و PDO هي جزء إلزامي من أي مقابلة.

\n\n

سؤال: لماذا يجب استخدام PDO بدلاً من mysqli؟

\n

PDO (PHP Data Objects) هو تجريد يسمح بالتبديل بسهولة بين أنظمة إدارة قواعد البيانات المختلفة (MySQL, PostgreSQL, SQLite) دون إعادة كتابة الكود. بالإضافة إلى ذلك، يدعم PDO العناصر النائبة المسماة، مما يجعل الكود أنظف.

\n\n
<?php\n// مثال على استعلام آمن باستخدام PDO\n$dsn = 'mysql:host=localhost;dbname=testdb;charset=utf8mb4';\n$pdo = new PDO($dsn, 'user', 'password');\n\n$sql = "SELECT * FROM users WHERE email = :email";\n$stmt = $pdo->prepare($sql);\n$stmt->execute([':email' => 'test@example.com']);\n$user = $stmt->fetch(PDO::FETCH_ASSOC);\n?>
\n\n

سؤال: كيف تحمي نفسك من حقن SQL؟

\n

الإجابة الرئيسية: لا تقم أبدًا بإدخال بيانات المستخدم مباشرة في استعلام SQL. استخدم العبارات المحضرة (prepared statements) مع العناصر النائبة. هذا يضمن أن البيانات سيتم تخطيها تلقائيًا.

\n\n

3. الأمان وأفضل الممارسات

\n\n

الأمان هو ما يميز المبتدئ عن المحترف. يحب المحاورون طرح أسئلة حول هذا الموضوع.

\n\n

سؤال: ما هي أنواع الهجمات الأكثر شيوعًا في تطبيقات الويب PHP؟

\n
    \n
  • XSS (Cross-Site Scripting) — إدخال نصوص برمجية. الحماية: استخدم htmlspecialchars() أو strip_tags() عند عرض البيانات.
  • \n

المدونات

توصيات الكتب