PHP साक्षात्कार कैसे पास करें: शीर्ष प्रश्न और उत्तर

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें
```html

परिचय

PHP डेवलपर पद के लिए साक्षात्कार केवल भाषा के सिंटैक्स की जांच नहीं है, बल्कि आर्किटेक्चर, सुरक्षा और आधुनिक दृष्टिकोणों की समझ का परीक्षण भी है। कई उम्मीदवार बुनियादी प्रश्नों पर अटक जाते हैं क्योंकि वे व्यवस्थित रूप से तैयारी नहीं करते हैं। इस लेख में, हम उन शीर्ष प्रश्नों का विश्लेषण करेंगे जो PHP साक्षात्कारों में सबसे अधिक पूछे जाते हैं, कोड उदाहरणों और स्पष्टीकरणों के साथ। यह सामग्री शुरुआती और अनुभवी डेवलपर्स दोनों के लिए उपयोगी होगी जो अपने ज्ञान को ताज़ा करना चाहते हैं।

डेटा प्रकार और टाइप कास्टिंग

PHP में कौन से डेटा प्रकार मौजूद हैं?

PHP 8 मुख्य डेटा प्रकारों का समर्थन करता है, जो तीन समूहों में विभाजित हैं:

  • स्केलर: bool, int, float, string।
  • कम्पाउंड: array, object, callable, iterable।
  • विशेष: resource, null।

प्रकार जांच का उदाहरण:

$value = "123";
if (is_numeric($value)) {
    $intValue = (int) $value; // int में कास्टिंग
    var_dump($intValue); // int(123)
}

== और === में क्या अंतर है?

ऑपरेटर == टाइप कास्टिंग के बाद मानों की तुलना करता है, जबकि === बिना कास्टिंग के (सख्त तुलना) करता है। यह सबसे आम जालों में से एक है:

var_dump(0 == "0");   // bool(true)
var_dump(0 === "0");  // bool(false)

PHP में OOP: इनहेरिटेंस, इंटरफेस और ट्रेट्स

ट्रेट्स क्या हैं और उनकी आवश्यकता क्यों है?

ट्रेट्स (traits) PHP में कोड पुन: उपयोग का एक तंत्र है जो एकल इनहेरिटेंस की समस्या को हल करता है। ट्रेट को इंस्टेंटिएट नहीं किया जा सकता, लेकिन इसे use के साथ क्लास में शामिल किया जा सकता है:

trait Logger {
    public function log($message) {
        echo "[LOG]: $message";
    }
}

class User {
    use Logger;
}

$user = new User();
$user->log("उपयोगकर्ता बनाया गया");

एब्सट्रैक्ट क्लास और इंटरफेस में क्या अंतर है?

  • एब्सट्रैक्ट क्लास में मेथड्स और प्रॉपर्टीज का कार्यान्वयन हो सकता है। इसे extends के माध्यम से इनहेरिट किया जाता है।
  • इंटरफेस केवल मेथड्स के सिग्नेचर (बिना कार्यान्वयन के) परिभाषित करता है। एक क्लास implements के माध्यम से कई इंटरफेस लागू कर सकता है।
interface CanFly {
    public function fly();
}

abstract class Bird {
    abstract public function sound();
    public function eat() {
        echo "अनाज खाता है";
    }
}

class Eagle extends Bird implements CanFly {
    public function sound() { echo "चीख"; }
    public function fly() { echo "उड़ता है"; }
}

डेटाबेस और PDO के साथ काम करना

PDO क्या है और इसका उपयोग क्यों किया जाता है?

PDO (PHP Data Objects) डेटाबेस के साथ काम करने के लिए एक एक्सटेंशन है जो विभिन्न DBMS (MySQL, PostgreSQL, SQLite आदि) के लिए एक समान इंटरफेस प्रदान करता है। मुख्य लाभ तैयार क्वेरी (prepared statements) के माध्यम से SQL इंजेक्शन से सुरक्षा है:

$pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');
$stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email');
$stmt->execute([':email' => 'user@example.com']);
$user = $stmt->fetch(PDO::FETCH_ASSOC);

PDO में त्रुटियों को कैसे संभालें?

सबसे अच्छा अभ्यास PDO को अपवाद मोड में स्विच करना है:

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
    $pdo->exec("INSERT INTO users (name) VALUES ('John')");
} catch (PDOException $e) {
    echo "त्रुटि: " . $e->getMessage();
}

सुरक्षा और सामान्य कमजोरियाँ

एप्लिकेशन को XSS और SQL इंजेक्शन से कैसे बचाएं?

साक्षात्कार में न केवल सिद्धांत बल्कि व्यावहारिक उपायों की समझ दिखाना महत्वपूर्ण है:

  • SQL इंजेक्शन: तैयार क्वेरी (prepared statements) के साथ PDO का उपयोग करें (ऊपर उदाहरण देखें)।
```

ब्लॉग

पुस्तक अनुशंसाएँ