हेलो दोस्तों आज के इस ब्लॉग पोस्ट(PHP Interview Questions In Hindi) में मैं आपको php interview questions के बारे में हिंदी में बताने वाला हूँ |
अगर आप php लैंग्वेज जानते है और सॉफ्टवेयर कंपनी के लिए किसी इंटरव्यू की तैयारी कर रहे है तो फिर यह ब्लॉग आपके लिए काफी informative होने वाला है |PHP Interview Questions In Hindi|
PHP का फुल फॉर्म होता है hypertext pre -processor language जिसे हम एक और नाम से भी जानते है personal home page |PHP Interview Questions In Hindi|
PHP एक ओपन सोर्स, फ्री और सर्वर साइड स्क्रिप्टिंग लैंग्वेज है |PHP Interview Questions In Hindi|
और इस लैंग्वेज का ज्यादातर use हम डायनामिक वेब एप्लीकेशन, websites , और मोबाइल APIs बनाने के लिए करते है |PHP Interview Questions In Hindi|
php के साथ MYSQL बिल्ट-इन डेटाबेस रहता है और यह लैंग्वेज और भी डेटाबेस को सपोर्ट करती है जैसे कि Solid , PostgreSQL , Sybase , generic ODBC , Oracle , etc |PHP Interview Questions In Hindi|
php का कोड html के साथ एम्बेडेड रहता है, कहने का मतलब कि हम php के अंदर html लिख सकते है|
और html कोड के अंदर php कोड को लिख सकते है |PHP Interview Questions In Hindi|
php का उपयोग हम dynamic content , सेशन ट्रैकिंग, डेटाबेस, etc को मैनेज करने के लिए करते है |
और तो और php की मदद से हम एक पूरी इ-कॉमर्स साइट को बिल्ड कर सकते है |PHP Interview Questions In Hindi|
आप देखेंगे की बहुत सारे वेब होसिटंग सर्वर अथवा प्रोवाइडर php लैंग्वेज को सपोर्ट करते है|
इस लिए php एप्लीकेशन डेवलपमेंट वालों को अक्सर यह प्लान्स थोड़ा सस्ते में मिल जाते है और दूसरी टेक्नोलॉजी के comparison में|
Scope of php :
php लैंग्वेज जो है वो सभी टॉप लैंग्वेजेज में से एक है, क्योकि php जो है|
वो एक स्माल कोड से भी एक इम्पैक्टफुल आउटपुट प्रोवाइड करने की एबिलिटी रखती है |
और पिछले कुछ सालो में इंडस्ट्री को ऐसे ही efficient लैंग्वेज की खोज थी जो php के साथ पूरी हो गयी थी |
php के इसी मैजिक के चलते आज बड़ी बड़ी कम्पनीज एक बड़ा अमाउंट php के developers को hire करने में खर्च कर रही है |
और इसी को ध्यान में रखते हुए आज के ब्लॉग पोस्ट में हम आपको php के कुछ बहुत important और frequent interview questions…
… के बारे में जानकारी देंगे जो कि software इंडस्ट्री में Freshers अथवा experienced दोनों candidates से पूछे जाते है |
Freshers के लिए php इंटरव्यू questions
php में variables और constants में क्या डिफरेंस होता है ?
php variables और constants के बीच कुछ differences निम्नलिखित है :
Variables | Constants |
php variable की वैल्यू execution के दौरान चेंज हो सकती है | | php constant की वैल्यू पूरी स्क्रिप्ट के execution के दौरान चेंज नहीं होती है | |
variable के शुरु में उसे रिप्रेजेंट करने के लिए $(dollar) sign का use करना जरुरी है | | जबकि constant के साथ ऐसा कोई $ sign use करने की जरुरत नहीं है | |
सिंपल असाइनमेंट ऑपरेटर की मदद से हम किसी भी variable को डिफाइन कर सकते है | | constant को असाइनमेंट ऑपरेटर्स के द्वारा डिफाइन नहीं कर सकते है | कांस्टेंट को डिफाइन करने के लिए हमें define () मेथड का use करना पड़ता है | |
variable का डिफ़ॉल्ट स्कोप उसके करंट access स्कोप जितना ही रहता है | | constant के साथ ऐसा नहीं है | constant को कही से भी एक्सेस कर सकते है, इस पर कोई भी scoping रूल काम नहीं करता है | |
What is a session in PHP?/ PHP में session क्या होता है?
php में session जो है वो एक तरह का तरीका या तकनीक होती है|
जिसमे हम किसी भी डाटा को स्टोर करके पूरी वेबसाइट में एक पेज से दूसरे पेज पर ले जा सकते है |
पर यह इनफार्मेशन और डाटा कूकीज की तरह यूजर के सिस्टम में स्टोर नहीं होती है |
बल्कि इसके लिए सर्वर पर एक temporary डायरेक्टरी क्रिएट होती है और इस डायरेक्टरी में session द्वारा एक फाइल क्रिएट होती है |
और इस फाइल में session variables और उनकी value स्टोर होती है |
और यह session वैल्यूज एक यूजर के लिए हर पेज पर availble रहती है जब तक यूजर साइट पर active रहता है |
जब आप किसी भी आप्लिकेशन अथवा app पर काम करते है तो सबसे पहले आप उसे ओपन करते है|
फिर आप उसमे कुछ मॉडिफिकेशन करते है, और फिर बाद में उसे क्लोज कर देते है |
ऐसा ही कुछ session के साथ भी होता है| जैसे आपका कंप्यूटर आपके बारे में जनता है|
की आप कौन है और अपने कब एप्लीकेशन को स्टार्ट किया और कब एप्लीकेशन को क्लोज कर दिया |
पर इंटरनेट के ऊपर वेबसर्वर यह नहीं जानता है कि आप कौन है और आप क्या करते है, क्योकि http एड्रेस आपकी state को मेन्टेन नहीं करता है |
और इस प्रॉब्लम को solve करने के लिए session वेरिएबल का उपयोग किया जाता है…
… जो की यूजर की इनफार्मेशन को स्टोर करके रखता है और जब तक यूजर विजिट पर होता है तब तक हर पेज पर यह इनफार्मेशन अवेलेबल होती है |
जैसे कि user name , login time , etc |
by default session variable तब तक एक्टिव होते है जब तक यूजर ब्राउज़र को क्लोज न कर दे |
तो conclusion में हम कह सकते है कि session variable एक सिंगल यूजर की इनफार्मेशन को होल्ड करता है|
और यह इनफार्मेशन एक एप्लीकेशन के हर पेज के लिए अवेलेबल होती है जब तक यूजर एक्टिव रहता है |
What does PEAR stands for? php में PEAR क्या होता है ?
PEAR का फुल फॉर्म होता है ‘php Extension and Application Repository’ और यह एक फ्रेमवर्क और रिपॉजिटरी है सभी php reusable component के लिए|
PEAR जो है वो सभी वेब डेवलपर को हाई लेवल प्रोग्रामिंग करने में मदद करती है |
PEAR के अंदर सभी प्रकार के php कोड snippts और लाइब्रेरी होती है|
और यहाँ पर आपको यह एक कमांड लाइन इंटरफ़ेस भी प्रोवाइड करती है जहाँ पर आप ऑटोमेटिकली पैकेजेस को इनस्टॉल कर सकते है |
Explain the difference between $message and $$message / $message और $$message में डिफरेंस बताईये?
$message और $$message में डिफरेंस निम्नलिखित है :
$Message | $$Message |
$message एक regular वेरिएबल है | $$message एक reference वेरिएबल है |
इसका नाम fixed है और यह एक fixed वैल्यू स्टोर करता है | यह variable के बारे में data स्टोर करता है |
$message में स्टोर डाटा जो है वो fixed है | $$message की वैल्यू dynamically चेंज हो सकती है जैसे ही variable की वैल्यू चेंज होती है |
Is PHP a case-sensitive language?/ क्या PHP एक case sensitive लैंग्वेज है?
php को हम partial case -sensitive लैंग्वेज बोल सकते है |
क्योकि php के अंदर जो वेरिएबल NAME होते है वो कम्प्लीटली केस सेंसिटिव होते है पर function NAME नहीं होते है |
और हाँ यूजर define function केस सेंसिटिव नहीं होते है पर बाकी पूरी लैंग्वेज case -sensitive होती है |
जैसे कि php में हम कोई function को lowercase लेटर में डिफाइन कर दे|
पर बाद में इसी फंक्शन को कही पर uppercase letter में रेफेर कर दे|
अथवा use कर ले तो फिर भी इस function की वर्किंग में कोई भी अंतर नहीं आएगा|
What are the different types of variables present in PHP?/ PHP में कौन कौन से variables होते है?
php में 8 primary डाटा types रहते है, जिन्हे हम वेरिएबल बनाने के लिए उपयोग करते है | और वो है :
Integers: Integer एक पूरा नंबर होते है जिसमे कोई भी दशमलव नहीं होता है | ex – 1235
Doubles: यह एक दशमलव नंबर होता है | ex – 8 .253
Booleans:यह दो लॉजिकल स्टेट्स को रिप्रेजेंट करता है true और false |
NULL: यह एक स्पेशल टाइप का datatype है जो केवल एक ही वैल्यू रखता है वो है ‘NULL’ |
जब variable को कोई भी वैल्यू असाइन न की गयी हो तब उसे NULL वैल्यू assign कर सकते है |
Arrays: Array datatype में हम एक ही तरह के कई data को insert कर सकते है | Ex: $colors = array(“red”, “yellow”, “blue”);
Strings: यह characters को एक सीक्वेंस होती है | ex – “Hello how are your doing”|
Resources: यह कुछ स्पेशल वेरिएबल्स होते है जो कि php के कुछ external resources का रेफ़्रेन्स रखती है | जैसे कि डेटाबेस कनेक्शन|
Objects: यह क्लास का ही एक instance होता है जो कि डाटा और फंक्शन को रखता है | ex – $mango = New Fruit ()|
What are the rules for naming a PHP variable?/ php variable को naming करने के लिए कौन कौन से रूल्स है?
php के variable को NAME करने के लिए निम्नलिखित नियम फॉलो करने पड़ते है :
कोई भी वेरिएबल $(dollar) sign से स्टार्ट होगा और उसके बाद वेरिएबल का नाम होगा | ex – $price = 10 ;
variable का नाम या तो किसी लेटर से अथवा underscore से स्टार्ट होगा|
एक वेरिएबल के नाम में लेटर्स, नंबर्स, अथवा अंडरस्कोर हो सकता है |
लेकिन आप +, -, %, & etc जैसे characters को use नहीं कर सकते है |
एक php वेरिएबल में space नहीं हो सकता है |
php variable जो है वो case -sensitive होते है |
इसलिए $NAME और $name दोनों को अलग अलग variable की तरह treat किया जायेगा|
What is the difference between “echo” and “print” in PHP?/ PHP में echo और Print में क्या difference होता है?
echo और Print में जो main डिफरेंस होता है वो निम्नलिखित है:
ECHO | |
echo का उपयोग करके हम एक या एक से अधिक स्ट्रिंग को आउटपुट कर सकते है | | Print का उपयोग केवल एक स्ट्रिंग को प्रिंट करने के लिए कर सकते है और यह हमेशा 1 ही return करता है | |
echo जो है वो प्रिंट से ज्यादा फास्टर होता है क्योकि यह कोई भी वैल्यू को return नहीं करता है | | echo के compare में Print slow होता है | |
अगर आप echo में एक से ज्यादा पैरामीटर पास करना चाह रहे है तो फिर आपको paranthesis का उपयोग करना पड़ेगा | | arguments list में paranthesis की कोई भी जरुरत नहीं होती है | |
Tell me some of the disadvantages of PHP / PHP के कुछ disadvantages बताईये?
php के कुछ disadvantages निम्नलिखित है:
php लैंग्वेज जो है वो gaint content -based एप्लीकेशन के लिए suitable नहीं है |
चूकि php एक ओपन सोर्स और फ्री लैंग्वेज है इसलिए यह ज्यादा सिक्योर नहीं है, क्योकि इसकी ASCII फाइल्स easily available है |
ऑनलाइन एप्लीकेशन के core behaviour में कोई भी चेंज अथवा मॉडिफिकेशन php द्वारा allowed नहीं है |
अगर हम php framework और tools के ज्यादा features को use करते है|
तो फिर यह कभी कभी ऑनलाइन एप्लीकेशन के poor परफॉरमेंस का कारण बन जाती है |
php के अंदर error को हैंडल करने की क्वालिटी poor है |
php के अंदर debugging tools कम होते है, जो कि warning और error को देखने के लिए जरुरी होते है |
और प्रोग्रामिंग लैंग्वेज की अपेक्षा php में debugging tools बहुत कम होते है |
Intermediate Interview Questions In PHP
How can PHP and HTML interact? php और HTML कैसे इंटरैक्ट होते है ?
php script जो होती है उनमे HTML कोड generate करने की ability होती है |
और यह भी पॉसिबल है कि आप HTML से php तक information को पास कर सके |
php जो है वो server side language है और HTML जो है वो client साइड लैंग्वेज है |
इसलिए php का जो भी कोड होता है वो सर्वर साइड एक्सेक्यूटे होता है|
और फिर उसका रिजल्ट जो है वो स्ट्रिंग, ऑब्जेक्ट और ऐरे के फॉर्म में प्राप्त होता है जिसे हम HTML value में कन्वर्ट करके शो करते है |
यह जो इंटरेक्शन है वो दोनों लैंग्वेज के बीच एक ब्रिज का काम करता है | और इस तरह हम दोनों लैंग्वेज को बहुत अच्छे से use कर सकते है |
What is the purpose of @ in PHP?/ PHP में @ sign का क्या काम है?
php में @ sign का उपयोग हम error को supprese करने के लिए करते है |
जैसे रन टाइम पर किसी लाइन में error आती है, और उस लाइन के शुरुआत में @ sign लगा हुआ है तो फिर php इस error को अपने स्तर पर हैंडल कर लेता है |
Explain the importance of Parser in PHP? php में parsar का क्या importance है ?
php parsar एक तरह का टूल अथवा software होता है जो कि सोर्स कोड को मशीन कोड में कन्वर्ट करता है जिसे कंप्यूटर आसानी से समझ सके|
तो parsar का काम php कोड को मशीन readable कोड में कन्वर्ट करने का है |
php में php code को parse करने के लिए आप token _get _all () फंक्शन का उपयोग कर सकते है |
What are the different types of Array in PHP? php में Array के कितने प्रकार होते है ?
php में Array के तीन प्रकार होते है |
indexed Array
associative Array
Multidimensional Array
indexed Array :
जिस Array में जो Array key होती है वो अगर numeric हो तो हम उस Array को indexed Array कहते है |
इस Array में जो वैल्यूज होती है वो एक linear आर्डर में store और access होती है |
associative Array :
associative Array में indexing के लिए हम String का इस्तेमाल करते है |
और Array में जो वैल्यू स्टोर होती है वो के के साथ associate रहती है |
और इनके स्टोरेज में कोई भी लीनियर आर्डर जैसा कुछ नहीं होता है |
multidimentional Array :
जब कोई एक Array अपने अंदर ही एक या एक से अधिक Array होल्ड करता है अथवा रखता है तब हम इसे multidimentional Array कहते है |
इसमें जो Array value होती है उन्हें access करने के लिए हम multiple indices का उपयोग करते है |
Explain the main types of errors / PHP में errors के प्रकार को समझाइये?
php में मुख्यतः तीन प्रकार की error होती है:
Notices: Notices error जो होती है वो नॉन-क्रिटिकल errors में आती है जो कि स्क्रिप्ट execution के दौरान ही आती है|
यह एरर users को show नहीं होती है| ex – ‘Accessing an undefined variable’|
Warnings: यह error नोटिस से ज्यादा क्रिटिकल होती है |
वार्निंग error जो है वो स्क्रिप्ट्स के execution को कभी भी इंटरप्ट नहीं करती है |
By default यह यूजर को विज़िबल होती है, पर आप इन्हे हाईड कर सकते है | ex – ‘include () a file that does not exist ‘|
Fatal: यह fatal errors जो होती है वो सबसे क्रिटिकल errors होती है|
और इनके होने पर स्क्रिप्ट का execution तुरंत रुक जाता है |
ex – Accessing a property of a non -existent object or रेक्विरे() a non -existent file |
What are traits?/ PHP में Traits क्या होता है?
Traits एक्चुअली में एक ऐसी mechenism है जिससे कि हम php और सिमिलर लैंग्वेज में reusable कोड को क्रिएट कर सकते है|
जहाँ पर multiple inheritance सपोर्ट नहीं होता है | इस खुद से ही instantiate नहीं कर सकते है |
Traits जो है वो डेवेलपर्स को सिंगल इनहेरिटेंस की लिमिटेशन से फ्री करता है और यह उन्हें allow करता है|
कि वो reusable मेथड्स को फ्रीली इंडिपेंडेंट क्लासेज में use कर पाए|
और उन क्लास में भी जो अलग ही क्लास hierarchies में exist करती है |
Does JavaScript interact with PHP? क्या java script php से interact करती है?
देखिये java script जो है वो एक client side scripting लैंग्वेज है |
PHP में वो एबिलिटी रहती है कि वो जावा स्क्रिप्ट वेरिएबल को generate कर सकती है |
और इसे easily ब्राउज़र में execute किया जा सकता है |
और इस तरह एक सिंपल URL की मदद से php में वेरिएबल पास करते है |
How does the ‘for each’ loop work in PHP?/ PHP के अंदर for each लूप कैसे काम करता है?
PHP में foreach जो है वो एक looping construct है जिसे हम Array से डाटा access करने के लिए करते है |
foreach loop की वर्किंग बहुत ही सिंपल है |
हर एक पास में एक element को एक वैल्यू असाइन हो जाती है और फिर pointer को इन्क्रीमेंट कर दिया जाता है |
और यही प्रोसेस तब तक चलता रहता है जब तक Array की वैल्यू खत्म न हो जाये |
foreach का सिंटेक्स निचे दिया गया है |
foreach($array as $value)
{
Code inside the loop;
}
What is the most used method for hashing passwords in PHP?/ PHP में Password hash करने के लिए सबसे ज्यादा use किये जाने वाला method कौन सा है?
Password hasing के लिए php में हम crypt () फंक्शन का उपयोग करते है |
यह फंक्शन जो है वो कई सारी hasing algorithm प्रोवाइड करती है जिसे हम use कर सकते है |
यह algorithm जो है वो sha1 , sha256 , और md5 algorithm को include करती है जो कि बहुत ही fast और efficient है |
What is the difference between the include() and require() functions?/ include () और require () function में क्या डिफरेंस होता है?
include() Function:
include function का उपयोग हम एक फाइल के कंटेंट को दूसरी फाइल में कॉपी करने के लिए करते है |
जब फाइल include रहती है तो फिर वह find नहीं की जा सकती है |
यह केवल एक warning मैसेज प्रोडूस करेगी पर script continue execute होती रहेगी |
require() function:
require function का काम भी include फंक्शन जैसा ही है, यह भी फाइल का पूरा कंटेंट उस फाइल में कॉपी कर देती है|
जिसमे इसे require किया गया है अथवा कॉल किया गया है |
जब कोई भी फाइल required होती है तो उसे भी find नहीं किया जा सकता है |
और यह एक fatal error produce करेगी (E _compile _ERROR), और script को terminate कर देगी |
What are cookies? How to create cookies in PHP?/ cookies क्या होती है और php में कूकीज को कैसे क्रिएट किया जाता है ?
cookies जो है वो एक बहुत ही छोटा रिकॉर्ड होता है जिसे सर्वर क्लाइंट अथवा यूजर के सिस्टम में इनस्टॉल करता है |
यह यूजर के बारे में जो डाटा होता है उसे ब्राउज़र पर स्टोर करता है |
यह कोड किसी भी यूजर को identify करने के लिए होता है और यह यूजर के कंप्यूटर के साथ embeded हो जाता है|
जब कभी यूजर किसी पर्टिकुलर पेज को रिक्वेस्ट करता है |
और हर बार जब कोई नया सिस्टम इस पेज के लिए रिक्वेस्ट करता है तो फिर पेज के साथ कूकीज को भी भेज दिया जाता है |
encrypted फॉर्म में यूजर की id वेरीफाई करने के बाद कूकीज जो है वो एक सेशन id को backend पर generate करते है |
और इसे machine के browser पर ही होना चाहिए |
यहाँ पर आप केवल String वैल्यू स्टोर कर सकते है न कि कोई object value को|
क्योकि आप websites और web apps के across object को access नहीं कर सकते है |
by default जो कूकीज होती है वो URL particular होती है |
जैसे example के लिए Gmail cookies जो होती है वो Yahoo या अन्य apps को सपोर्ट नहीं करती है |
कूकीज जो है वो temporary और transitory होती है by default |
प्रत्येक साइट के लिए हम 20 कूकीज को क्रिएट कर सकते है |
कूकीज का जो initial साइज होता है वो है 50 bytes और maximum साइज होता है 4096 बीट्स|
setcookie() फंक्शन की मदद से हम php में cookies को क्रिएट कर सकते है:
setcookie(name, value, expire, path, domain, secure, httponly);
option नाम जो है वो mandatory होता है बाकी और पैरामीटर optional होते है.
Example:
setcookie(“instrument_selected”, “guitar”)
What is the difference between ASP.NET and PHP? ASP .NET और php में क्या अंतर है?
ASP .NET और php के बीच मैं difference निम्नलिखित है:
ASP.NET | PHP |
ASP .NET जो है वो एक वेब एप्लीकेशन फ्रेमवर्क है| | php एक सर्वर साइड स्क्रिप्टिंग लैंग्वेज है| |
ASP .NET को window सिस्टम पर काम करने के लिए डिज़ाइन किया गया है | | php जो है वो प्लेटफार्म इंडिपेंडेंट है | |
ASP .NET में कोड पहले compile होता है फिर execute होता है | | php में code जो है वो interpreter के द्वारा एक्सेक्यूटे होता है | |
इसके साथ इसकी लाइसेंस की कॉस्ट एसोसिएट रहती है | | php जो है वो ओपन सोर्स है और फ्रीली अवेलेबल है | |
What is the meaning of ‘escaping to PHP’? ‘escaping To PHP’ का मतलब क्या होता है?
php parsing इंजन को एक ऐसे तरीके की जरुरत होती है जिससे वो php कोड को पेज के और एलिमेंट्स से differentiate कर सके |
और इसी तरीके और mechenism को हम ‘escaping To PHP’ तकनीक कहते है |
किसी भी स्ट्रिंग को escape करने का मतलब होता है की उस स्ट्रिंग में used किये गए quotes में से ambiguity को reduce करना |
जैसे example के लिए जब आप किसी String को डिफाइन करते है|
तो फिर उसके या तो single कोट्स अथवा double कोट्स के बीच में रखते है, जैसे नीचे दिया गया है :
“Hello, InterviewBit.”
पर क्या हो अगर हम एक ही स्ट्रिंग में दो बार double quotes का इस्तेमाल करें जैसे नीचे दिखाया गया है |
“Hello “InterviewBit.””
अब यहाँ पर interpreter के लिए अम्बिगुइटी अथवा confusion की situation आ जाती है |
उसे पता नहीं है कि स्ट्रिंग का end कहाँ पर है |
इसलिए अगर आपको स्ट्रिंग में डबल कोट्स को रखना है तो इसके लिए कई सारे option है जो आप अपना सकते है|
स्ट्रिंग के starting और ending पर आप single कोट्स का उपयोग कर सकते है जैसे नीचे किया गया है |
‘Hello “InterviewBit.”‘
और आप अपने quotes को escape कर सकते है |
“Hello \”InterviewBit.\””
अगर कोई भी quotes के आगे हम स्लैश() का उसे करते है तो फिर उसे स्ट्रिंग का एक वैल्यू पार्ट ही समझा जाता है |
Explain Path ट्रेवेर्सल/ php में Path traversal क्या होता है ?
Path traversal एक तरह का अटैक होता है जिससे हम वेब एप्लीकेशन में किसी फाइल को रीड करते है |
‘../’ (dot-dot-sequences) एक क्रॉस प्लेटफार्म सिंबल है जिसे डायरेक्टरी में ऊपर जाने के लिए use किया जाता है |
Path traversal इस सिंबल का उपयोग web application की फाइल को ऑपरेट करने के लिए करता है |
attckers जो होते है वो इस पथ ट्रेवेर्सल के जरिये फाइल के कंटेंट को वेब एप्लीकेशन अथवा सर्वर की रुट डायरेक्टरी के बहार reveal कर सकते है |
और इसका ज्यादातर use कुछ सेंसिटिव अथवा सीक्रेट डाटा जैसे की Password , tokens को एक्सेस करने के लिए किया जाता है |
Path traversal को हम directory traversal भी कहते है |
यह हमलावर को हमले के तहत वेब फ़ाइल में मौजूद कमजोरियों का फायदा उठाने की अनुमति देता है
चलिए एक example ले कर इसे समझते है |
मान लीजिये हमारे पास एक ‘show button’ है जिस पर क्लिक करके हम एक URL पर redirect होते है |
एक classic directory traversal अटैक के लिए अटैकर्स जो है|
वो सिस्टम फाइल /etc/passwd (assuming a UNIX/LINUX system) को एक्सेस करने का try कर सकते है|
अगर एप्लीकेशन को एक यूआरएल के जरिये फाइल parameters मिली जाते है|
और वह इन्हे सिस्टम कॉल में पास कर देता है तब एक relative Path को ट्रैवर्स करता है|
../../etc/passwd starting from /var/ववव, और system से पासवर्ड फाइल को लोड करने के लिए कहता है |
इस तकनीक को हम dot -dot -slash अटैक के नाम से भी जानते है |
क्योकि यह हमेशा special characters का use करता है और फिर इसकी मदद से डायरेक्टरी में ऊपर की तरफ बढ़ता है |
What is the meaning of a final method and a final class?/ PHP में final method और final class के क्या मतलब है?
अगर आप किसी method को फाइनल डिक्लेअर करते है तो फिर उस मेथड को कोई भी ओवरराइड नहीं कर सकता है |
और यदि किसी क्लास को फाइनल डिक्लेअर कर देते है तो फिर उस क्लास की कोई sub class नहीं हो सकती है |
और यह तब बहुत उपयोगी हो जाता है जब हम कोई immutable class को क्रिएट करते है|
जैसे कि String class . और हाँ हम केवल classes और methods को ही फाइनल डिक्लेअर कर सकते है|
पर किसी भी variable अथवा prooperties को फाइनल declare नहीं कर सकते है |
PHP Interview Questions For Experienced
What are the steps to create a new database using MySQL and PHP? MYSQL और php का उपयोग करके डेटाबेस कैसे क्रिएट करते है ?
php के अंदर MYSQL डेटाबेस क्रिएट करने के चार main steps निम्नलिखित है :
PHP script के द्वारा MYSQL server से एक connection establish कीजिये|
अब आपको connection को validate करना है | अगर connection successful है|
तो आप एक sample query लिख सकते है इसे verify करने के लिए |
जो queries डेटाबेस को क्रिएट करती है वो सभी inputs है और बाद में सभी एक String variable में स्टोर होती है |
और इसके बाद जो भी queries क्रिएट की गयी है वो एक के बाद एक execute होंगी |
What is the use of session_start() and session_destroy() functions in PHP?/ php में session _start () और session _destroy () functions के क्या उपयोग है ?
session _start () function का उपयोग हम नए session को स्टार्ट करने के लिए करते है |
और इसका उपयोग हम पहले से stoped session को resume करने के लिए कर सकते है |
इस particular केस में return जो है वो current session होगा अगर उसे resume करते है |
Syntax:
session_start();
session _destroy () function का उपयोग हम सभी session variable को destroy करने के लिए करते है |
<?php
session_start();
session_destroy();
?>
What is Memcache and Memcached in PHP? Is it possible to share a single instance of a Memcache between several projects of PHP? php के अंदर memcache और Memcached क्या है ? php के different projects memcache का सिंगल interface शेयर कर सकते है |
Dynamic web एप्लीकेशन में डेटाबेस के लोड को कम करने के लिए Memcached एक efficient caching daemon है |
memcache जो है Memcached को कुछ procedure और object oriented interface provide करता है |
memcache जो है वो एक memory storage स्पेस है, हम memcache को एक या कई सर्वर पर रन कर सकते है |
इसलिए कई सारे प्रोजेक्ट्स एक साथ memcache के सिंगल इंटरफ़ेस को शेयर कर सकते है |
यह भी पॉसिबल है कि कोई क्लाइंट सेपरेट इन्सटेंसेस के साथ बात करें |
इसका मतलब यह है कि एक होस्ट पर हम दो अलग अलग memcache प्रोसेस को रन कर सकते है |
एक ही होस्ट पर रन करने के बाबजूद दोनों ही memcache इंडेपेंडेंटली वर्क करते है जब तक कि डाटा का कोई पार्टीशन नहीं होता है |
What are the different ways of handling the result set of MySQL in PHP?/ php में रिजल्ट सेट को हैंडल करने के लिए कौन कौन से तरीके है ?
Result set को हैंडल करने के लिए 4 तरीके है :
mysqli_fetch_array(): यह फंक्शन हमें associative ऐरे, न्यूमेरिक ऐरे, अथवा दोनों का करंट row return करता है |
mysqli_fetch_assoc(): associative Array के रूप में यह हमें Result set कि करंट row return करता है |
mysqli_fetch_object(): एक object के रूप में रिजल्ट सेट से row return करता है |
mysqli_fetch_row(): enumerated Array के रूप में row return करता है |
How to connect to a URL in PHP?/ php में URL को कैसे connect करते है ?
php में हम किसी भी URL को curl library के द्वारा कनेक्ट कर सकते है |
यह एक default लाइब्रेरी है जो कि स्टैन्डर्ड php installation के साथ होती है |
curl actually में client side URL को denote करता है |
Curl जो है वो libcurl लाइब्रेरी का use करता है जो कि बहुत सारे protocol को सपोर्ट करता है|
जैसे कि FTP, FTPS, HTTP/1, HTTP POST, HTTP PUT, HTTP proxy, HTTPS, IMAP, Kerberos etc |
curl आपको किसी भी URL से कनेक्ट करने के लिए allow करता है|
और इसकी मदद से आप डाटा को retrieve करके उस पेज कि information डिस्प्ले कर सकते है |
जैसे कि HTML content of the page, HTTP headers, and their associated data, etc |
curl का use करके URL कनेक्ट करने के steps नीचे दिए गए है :
curl session को initialize करो|
अपने URL को URL section में enter करो |
अब आप अपने curl option को define करिये जो आप Post option के साथ execute करना चाहते है |
जब सभी फंक्शन सेट हो जाये तब आप curl function को execute कर सकते है |
इसके बाद आप curl को क्लोज करके अपने object को echo करके response चेक कर सकते है |
//Step 1 To initialize curl
$ch = curl_init();
//Step 2 To set url where you want to post
$url = ‘http://www.localhost.com’;
//Step 3 Set curl functions which are needs to you
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_POSTFIELD,’postv1 = value1&postv2 = value2’);
//Step 4 To execute the curl
$result = curl_exec($ch);
//Step 5 Close curl
curl_close($ch);
What is PDO in PHP?/ PHP में PDO क्या है?
PDO का फुल फॉर्म होता है php data object |
PDO जो है वो extensions का एक सेट है जो आपको PDO क्लास, डेटाबेस स्पेसिफिक ड्राइवर्स प्रोवाइड करवाती है |
PDO एक्सटेंशन जो है वो उस डेटाबेस को एक्सेस कर सकते है जो कि PDO ड्राइवर्स के लिए लिखे गए है |
ऐसे बहुत से PDO ड्राइवर मौजूद है जिनका उसे हम फ्री TDS , Microsoft SQL server , IBM DB2 , sybase , Oracle , etc के लिए करते है |
यह एक lightweight , vendor natural डाटा-एक्सेस natural abstraction लेयर प्रोवाइड करवाती है |
इसलिए यह matter नहीं करता है कि हम कौन सा डेटाबेस use करते है|
उसमे क्वेरी इशू और डाटा फेच करने वाले फंक्शन same ही रहेंगे |
और यह डाटा एक्सेस अब्स्ट्रक्शन पर फोकस करेगा न कि डाटा अब्स्ट्रक्शन पर|
Differentiate between GET and पोस्ट?/ php GET और Post method में क्या difference होता है ?
php GET और POST मेथड में difference निम्नलिखित है :
GET Method | Post Method |
GET मेथड का उपयोग हम किसी रिसोर्स से डाटा को रिक्वेस्ट करने के लिए करते है | | Post मेथड का उपयोग हम सर्वर पर डाटा को सेंड करने के लिए करते है | |
GET मेथड से डाटा यूआरएल के फॉर्म में सेंड होता है जिसे आप यूआरएल में देख सकते है जो कि ampersand sign के साथ separate होता है | | Post method से सेंड डाटा URL पर show नहीं होता है | |
GET method का उपयोग हम binary डाटा जैसे कि इमेज और docs सेंड करने के लिए नहीं कर सकते है | | Post मेथड का उसे हम ASCII और बाइनरी दोनों डाटा को सेंड करने के लिए कर सकते है | |
GET method का उसे करके हम सेंसिटिव डाटा जैसे कि पासवर्ड, अकाउंट नंबर को सेंड नहीं कर सकते है | | Post method का उपयोग करके हम सेंसिटिव इनफार्मेशन को सेंड कर सकते है | |
यूजर GET मेथड के द्वारा सबमिट किये गए फॉर्म के रिजल्ट को bookmark कर सकते है | | Post मेथड से सेंड किये गए फॉर्म के रिजल्ट को हम bookmark नहीं कर सकते है | |
इस मेथड से सेंड किया गया डाटा सिक्योर नहीं होता है | | Post मेथड से सेंड किया गया डाटा सिक्योर होता है | |
GET मेथड का उपयोग ज्यादा सुरक्षित नहीं है क्योकि यहाँ पर भेजे गए पैरामीटर्स को सर्वर, लॉग्स और borwser पर स्टोर किया जा सकता है | | POST मेथड इस मामले में सुरक्षित है क्योकि यहाँ पर पैरामीटर्स कही पर भी स्टोर नहीं होते है | |
Explain type hinting in php / php में type hinting क्या होती है ?
php में type hinting जो है उसका उपयोग expected data types (Array , interface , objects , etc) को specify करने के लिए करते है |
जब भी कोई function कॉल होता है तब php यह चेक करती है कि जो arguments है वो यूजर prefered है या नहीं |
अगर arguments वैसे नहीं है जैसे specify किये गए थे तो फिर रन टाइम पर एक error डिस्प्ले होगी और प्रोग्राम का execution नहीं होगा |
कोड को organize करने के लिए यह बहुत अच्छा है और इससे error मैसेज भी improve होते है |
Example usage:
example के लिए यहाँ आप नीचे देख सकते है कि एक फंक्शन है sendEmail () इसमें $email argument जो है वो typehinted है email क्लास के according |
इसका मतलब यह है कि इस फंक्शन को कॉल करने के लिए आपको इस फंक्शन में ईमेल ही पास करना पड़ेगा नहीं तो आपको एक error मैसेज डिस्प्ले होगा| send(); } ?>
How to terminate the execution of a script in PHP?/ php में किसी भी स्क्रिप्ट का execution कैसे terminate किया जाता है?
PHP में किसी भी स्क्रिप्ट का execution रोकने के लिए हम exit () का उपयोग करते है |
यह एक built -in function है और यह एक error Message डिस्प्ले करता है और script को terminate कर देता है |
और इस error मैसेज की जगह आप अपना कोई customize मैसेज डिस्प्ले करवाना चाहते है|
तो आप उसे exit () फंक्शन में एक पैरामीटर की तरह पास कर सकते है |
और फिर error मैसेज के साथ ही उसका termination हो जायेगा |
exit () function जो है वो die () फंक्शन का ही alias है जो कि कोई वैल्यू return नहीं करता है |
Syntax: exit(message)
मैसेज यहाँ पर एक पैरामीटर है जो कि exit function में पास किया जाता है |
Example: exit () function का example आप नीचे देख सकते है |
How to create API in PHP?/ php में API कैसे create करते है?
API का फुल फॉर्म होता है application programming interface |
यह functions और variables को define करती है |
php extension के द्वारा database से communication को api handle करती है |
अब बात करते है REST api की , REST api एक web architecture है जो कि HTTP प्रोटोकॉल का उपयोग करती है |
और इसका काम होता है दो functions (our application , system) के बीच में डाटा को exchange करने का |
आईये अब हम नीचे एक php api create करते है जिसमे हम डेटाबेस से कुछ डाटा को access करने की स्क्रिप्ट लिखते है |
Step 1 – Create a database: database को क्रिएट करने के लिए नीचे दी गयी query को रन करिये:
CREATE DATABASE phptest;
Step 2 – Create a table:डेटाबेस क्रिएट करने के बाद टेबल्स क्रिएट करिये और उसमे कुछ डमी डाटा इन्सर्ट करिये|
इसके लिए नीचे दी गयी क्वेरी को रन करिये:
CREATE TABLE IF NOT EXISTS `transactions`
(
`id` int(20) NOT NULL AUTO_INCREMENT,
`order_id` int(50) NOT NULL,
`amount` decimal(9,2) NOT NULL,
`response_code` int(10) NOT NULL,
`response_desc` varchar(50) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `order_id` (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
Step 3 – अब डेटाबेस कनेक्शन को क्रिएट करिये इसके लिए ड्ब.php फाइल को क्रिएट करिये और नीचे दी गयी स्क्रिप्ट को उसमे पेस्ट करिये|
ध्यान रखिये यहाँ पर दिए गए क्रेडेंटिअल्स को अपने क्रेडेंटिअल्स से अपडेट करना मत भूलिए|
<?php
// Enter your Host, username, password, database below.
$con = mysqli_connect("localhost","root","","phptest");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
die();
}
?>
Step 4 – अब एक REST api फाइल क्रिएट करिये: एक api .php फाइल क्रिएट करिये और नीचे दिए गए code को उसमे पेस्ट करिये|
<?php
header("Content-Type:application/json");
if (isset($_GET['order_id']) && $_GET['order_id']!="")
{
include('db.php');
$order_id = $_GET['order_id'];
$result = mysqli_query($con,
"SELECT * FROM `transactions` WHERE order_id=$order_id");
if(mysqli_num_rows($result)>0)
{
$row = mysqli_fetch_array($result);
$amount = $row['amount'];
$response_code = $row['response_code'];
$response_desc = $row['response_desc'];
response($order_id, $amount, $response_code, $response_desc);
mysqli_close($con);
}
else
{
response(NULL, NULL, 200,"No Record Found");
}
}
else
{
response(NULL, NULL, 400,"Request is invalid");
}
function response($order_id,$amount,$response_code, $response_desc)
{
$response['order_id'] = $order_id;
$response['amount'] = $amount;
$response['response_code'] = $response_code;
$response['response_desc'] = $response_desc;
$json_response = json_encode($response);
echo $json_response;
}
?>
ऊपर दिया गया कोड GET request को accetp करेगा और json format में आउटपुट return करेगा|
इसका आउटपुट आप नीचे देख सकते है:
इस तरह से php में REST api create की जाती है |
you can also go through a few more related blog links below:
PHP Interview Questions For Experienced In Hindi…
PHP Interview Questions For Intermediate In Hindi…
PHP Interview Questions For Freshers In Hindi…
Conclusion:
तो इस ब्लॉग पोस्ट(PHP Interview Questions In Hindi) में हमने PHP interview questions के बारे में देखा जो सभी लोग जैसे फ्रेशर्स, इंटरमीडिएट, और experienced candidate के लिए थे| PHP एक बहुत ही अमेजिंग लैंग्वेज है जिसकी मदद से आप dynamic वेब पेज क्रिएट कर सकते है और अपनी वेबसाइट को पूरी तरह से डेवेलोप कर सकते है | PHP लैंग्वेज को सीखना भी बहुत ही आसान है और लैंग्वेज के अपेक्षा| इस ब्लॉग पोस्ट में हमने PHP इंटरव्यू में पूंछे जाने वाले बहुत से इम्पोर्टेन्ट questions को डिसकस किया जैसे कि PHP array , PHP APIs , PHP GET एंड POST method , PHP वेरिएबल एंड कोन्सटांत्स, etc |
इस ब्लॉग(PHP Interview Questions In Hindi) को लेकर आपके मन में कोई भी प्रश्न है तो आप हमें इस पते support@a5theory.comपर ईमेल लिख सकते है|
आशा करता हूँ, कि आपने इस पोस्ट(PHP Interview Questions In Hindi) को खूब एन्जॉय किया होगा|
आप स्वतंत्रता पूर्वक अपना बहुमूल्य फीडबैक और कमेंट यहाँ पर दे सकते है|PHP Interview Questions In Hindi|
आपका समय शुभ हो|