PHP साक्षात्कार कैसे पास करें: शीर्ष प्रश्नों का विश्लेषण
PHP डेवलपर पद के लिए साक्षात्कार केवल सिंटैक्स की जांच नहीं है, बल्कि आर्किटेक्चर, सुरक्षा और आधुनिक मानकों (PSR) की समझ का परीक्षण भी है। इस लेख में, हमने 10 प्रमुख प्रश्न एकत्र किए हैं जो जूनियर और मिडिल स्तर के साक्षात्कारों में सबसे अधिक पूछे जाते हैं। प्रत्येक प्रश्न के साथ स्पष्टीकरण, कोड उदाहरण और सामान्य जाल शामिल हैं।
1. echo और print में क्या अंतर है? और print_r और var_dump में?
यह एक बुनियादी प्रश्न है जो अंतर्निहित आउटपुट फ़ंक्शन के ज्ञान की जांच करता है।
echo— एक भाषा निर्माण है, यह कोई मान नहीं लौटाता।printसे तेज़ काम करता है।print— भी एक निर्माण है, लेकिन हमेशा1लौटाता है। इसका उपयोग अभिव्यक्तियों में किया जा सकता है।print_r— चर (सरणियाँ, ऑब्जेक्ट) के बारे में मानव-पठनीय जानकारी प्रदर्शित करता है। यदि दूसरा पैरामीटरtrueहै तो एक स्ट्रिंग लौटाता है।var_dump— चर का प्रकार और मान प्रदर्शित करता है, जिसमें स्ट्रिंग की लंबाई शामिल है। डिबगिंग के लिए उपयोगी।
<?php$arr = ['a' => 1, 'b' => 2];echo print_r($arr, true); // स्ट्रिंग लौटाता है, तुरंत प्रदर्शित नहीं करताvar_dump($arr); // array(2) { ["a"]=> int(1) ["b"]=> int(2) }?>2. क्लास ऑटोलोडिंग क्या है और यह Composer के साथ कैसे काम करता है?
ऑटोलोडिंग PHP को स्पष्ट require_once के बिना, पहली बार उपयोग करने पर क्लास को स्वचालित रूप से लोड करने की अनुमति देता है।
- पहले
spl_autoload_register()फ़ंक्शन का उपयोग किया जाता था। - अब वास्तविक मानक Composer और इसका ऑटोलोडर है।
- Composer PSR-4 (नेमस्पेस) और PSR-0 (पुराना) का समर्थन करता है।
// composer.json{ "autoload": { "psr-4": { "App\\\\": "src/" } }}
// composer dump-autoload के बाद// namespace App; के साथ फ़ाइल src/User.php$user = new \\App\\User(); // स्वचालित रूप से लोड होगा3. include, require, include_once और require_once के बीच अंतर
बाहरी फ़ाइलों और त्रुटि प्रबंधन के साथ काम करने की समझ पर प्रश्न।
include— यदि फ़ाइल नहीं मिलती है तो Warning देता है, स्क्रिप्ट काम करना जारी रखती है।require— Fatal Error देता है, स्क्रिप्ट रुक जाती है।*_once— जाँचता है कि फ़ाइल पहले लोड हुई है या नहीं, और इसे दोबारा लोड नहीं करता।
जाल: लूप में include बार-बार लोडिंग और फ़ंक्शन पुनर्परिभाषा त्रुटि का कारण बन सकता है यदि include_once का उपयोग नहीं किया जाता है।
4. PDO कैसे काम करता है और यह mysql_* फ़ंक्शन से बेहतर क्यों है?
PDO (PHP Data Objects) डेटाबेस के साथ काम करने के लिए एक इंटरफ़ेस है। किसी भी आधुनिक PHP डेवलपर के लिए इसे जानना अनिवार्य है।
- विभिन्न DBMS (MySQL, PostgreSQL, SQLite) का समर्थन करता है — बस DSN बदलें।
- तैयार क्वेरी (prepared statements) का उपयोग करता है, जो SQL इंजेक्शन से बचाता है।
- लेन-देन और अपवादों के माध्यम से त्रुटि प्रबंधन के साथ सुविधाजनक कार्य।
<?php$dsn = 'mysql:host=localhost;dbname=test;charset=utf8';$pdo = new PDO($dsn, 'user', 'pass', [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
$stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email');$stmt->execute(['email' => $email]);$user = $stmt->fetch(PDO::FETCH_ASSOC);?>5. PHP में मैजिक मेथड्स क्या हैं? उदाहरण दें
मैजिक मेथड्स दोहरे अंडरस्कोर (__) से शुरू होते हैं और ऑब्जेक्ट के साथ विशिष्ट क्रियाओं पर स्वचालित रूप से कॉल किए जाते हैं।
__construct()— ऑब्जेक्ट बनाने पर कॉल किया जाता है।__get()/_