PHP File Inclusion Statements: हम PHP में किसी भी PHP File को किसी भी अन्य PHP File में Include कर सकते हैं। किसी PHP File को अन्य PHP File या Script में Include करने के लिए PHP हमें चार Statements Provide करता है।
include() Statement
ये Statement Specify की गई File को Current Script में उस स्थान पर Include करता है, जहां पर हम इसे Call करते हैं। किसी File को Include करना ठीक उसी तरह से काम करता है, जैसे कि हमने उस File के Contents को Current File में Copy कर लिया हो।
हम Include की जाने वाली File में किसी भी तरह के Contents लिख सकते हैं। Include होने वाली File कोई PHP Script File हो सकती है अथवा कोई HTML File हो सकती है अथवा कोई भी अन्य प्रकार की Text File हो सकती है। इस Statement का Syntax निम्नानुसार होता हैः
include (/path/to/filename);
चूंकि include भी echo व print की तरह एक Statement है न कि Function, इसलिए हम चाहें तो इसके साथ Associated Parenthesis को Omit कर सकते हैं। यानी हम उपरोक्त Syntax को निम्नानुसार भी लिख सकते हैं:
include “/path/to/filename”;
उदाहरण के लिए यदि हम हमारी किसी Function File को Current File में Include करना चाहें, तो हम इस File को निम्नानुसार Statement द्वारा Include कर सकते हैं:
<?php include "myFunctions.inc.php"; echo "Total : " . add(20, 30); ?>
हमने add() नाम के Function को myFunctions.inc.php नाम की PHP File में Store किया है, इसलिए इस Function को Current Script में Use करने के लिए हमने इस File को include Statement द्वारा Current Script में Include किया है। परिणामस्वरूप हम Current Script में add() Function को बिना Define किए हुए Directly Use कर रहे हैं।
include Statement को हम हमारी जरूरत के अनुसार किसी Conditional Statement में Use कर सकते हैं और किसी Specific Situation में किसी File को Current Script में Include कर सकते हैं।
उदाहरण के लिए यदि User Logged-In हो, तो User को Web Page का Secure Area दिखाई देना चाहिए अन्यथा Error Page दिखाई देना चाहिए। इस जरूरत को पूरा करने के लिए हम Page के किसी हिस्से को Current Page में निम्नानुसार Conditionally Include कर सकते हैं:
<?php if(loggedin === true){ include "secureSection.inc.php"; } else { include "errorSection.inc.php"; } ?>
चूंकि include Statement किसी भी File को Current Script File में Embed करने का काम करता है, इसलिए यदि किसी File में PHP Code हों, तो वे Code <?php … ?> के बीच ही Enclosed होने चाहिएं अन्यथा PHP इसे सामान्य Text समझ कर ज्यों का त्यों Render कर देगा।
include Statement में हम जिस File को Specify करते हैं, वह File यदि Current Directory व include_path Variable में Specified Path पर उपलब्ध न हो, तो ये Statement एक Warning Message Return करता है।
लेकिन यदि हम इस Statement में किसी File को उसके Absolute या Relative Path के साथ Specify करते हैं, तो ये Statement include_path में Specified Path को पूरी तरह से Ignore करके केवल Specified Path पर ही Specified File को Search करता है।
जब हम किसी File को Current Script में Include करते हैं और उस File के Codes में यदि कोई Variable Declare किया गया हो, तो वह Variable अपने Scope को Inherit करता है।
यानी Included File का Variable Current Script File में जहां Include किया जाता है, वहां से आगे तक यानी जहां तक Variable Available हो सकता है, वहां तक वह Variable Available रहता है।
हम ऐसा भी कह सकते हैं कि हम जहां पर किसी File को Include करते हैं, उस File के Codes, Current File उसी स्थान पर इस प्रकार से Embed हो जाते हैं, जैसे कि वे Codes, Current File में उसी स्थान पर लिखे गए हों।
हालांकि Current File में Include की गई File में लिखे हुए सभी Functions व Classes Current File में भी Global Scope में Available रहते हैं। Variable के Scope व Lifetime के बारे में हम आगे विस्तार से जानेंगे।
यदि हम इस include Statement का प्रयोग किसी User Defined Function के अन्दर करते हैं, तो Include होने वाली File के सारे Contents Function के अन्दर ही Expand होते हैं, इसलिए वे Codes केवल उस Function में ही Available रहते हैं और उस Function की Body के अन्दर के Variable Scope व Lifetime के Rules को Follow करते हैं।
Include की जाने वाली File के जिस किसी भी Content को PHP Codes की तरह PHP Parser पर Parse करना जरूरी होता है, उन्हें हमेंशा <?php … ?> के बीच Enclose करना जरूरी होता है। PHP की इस व्यवस्था के कारण हम किसी भी Include की जाने वाली File में PHP के Codes के अलावा अन्य प्रकार के Contents जैसे कि Texts, HTML Codes आदि भी लिख सकते हैं।
यानी जो Codes <?php … ?> के बीच Enclosed होते हैं, उन्हें PHP Parser Parse करता है, जबकि जो Contents इनके बीच Enclosed नहीं होते, उन्हें PHP Parser ज्यों का त्यों फिर से उनकी उसी Position पर Return कर देता है, जहां पर वे Included File में लिखे गए हैं।
जब include Statement का प्रयोग करके किसी File को Current Script File में Embed किया जाता है, तो File के Successfully Embed हो जाने की स्थिति में include Statement True Return करता है, जबकि किसी वजह से यदि File Include न हो पाए, तो include Statement False Return करता है।
जिस तरह से कोई Function किसी Value को Return करता है, ठीक उसी तरह से कोई PHP Script या File जिसमें PHP Code लिखा गया हो, कोई Value Return कर सकता है।
यानी जब कोई Script किसी तरह की कोई Value Return करता है और हम उस Script File को किसी दूसरी File में include Statement द्वारा Include करते हैं, तो पहली File की Script से Return होने वाली Value को उस दूसरी File में ठीक उसी तरह से Accept किया जा सकता है, जिस तरह से किसी Function से Return होने वाली Value को किसी Variable में Accept किया जाता है। इसे हम निम्न Program द्वारा समझ सकते हैं:
// returnValue.php <?php $var = 'PHP'; return $var; ?> // noreturnValue.php <?php $var = 'PHP'; ?> // testReturns.php <?php $retVal1 = include 'returnValue.php'; echo $retVal1; // prints 'PHP' $retVal2 = include 'noreturnValue.php'; echo $retVal2; // prints 1 ?>
उपरोक्त उदाहरण में हमने तीन PHP Files Create की है। returnValue.php नाम की File $var नाम का एक Variable Return करता है, जिसमें Value के रूप में एक String ‘PHP’ है। जबकि noreturnValue.php नाम की File में भी $var नाम का एक Variable है, जिसमें Value के रूप में एक String ‘PHP’ है।
तीसरी File testReturns.php में हमने इन दोनों Files को include Statement का प्रयोग करते हुए Include किया है। जब returnValue.php File Include किया जाता है, तब ये File Current File में Embed होने के बाद एक Value Return करता है, जिसे $retVal1 नाम के Variable में Accept कर लिया जाता है। परिणामस्वरूप Output में ‘PHP’ Print होता है, क्योंकि returnValue.php File से यही Value Return हो रहा है।
जबकि जब noreturnValue.php File Current Script File में Include होता है, तो File के Successfully Current File में Embed हो जाने की स्थिति में include Statement True यानी 1 Return करता है। परिणाम स्वरूप $retVal2 Variable Output में 1 Print करता है।
उपरोक्त Program में हम देख सकते हैं कि returnValue.php File ठीक उसी तरह से एक Value Return कर रहा है, जिस तरह से कोई User Defined Function किसी Value को Return करता है। यानी एक Include की जाने वाली File भी ठीक उसी तरह से किसी Value को Return कर सकता है, जिस तरह से कोई User Defined Function किसी Value को Return करता है।
जब include Statement का प्रयोग करके किसी File को Current Script File में Include किया जाता है, और Include की जाने वाली File उपलब्ध नहीं होती है, तो ये Function False Return करने के साथ ही एक E_WARNING Message भी Return करता है।
include_once() Statement
लेकिन यदि हम किसी एक ही File को एक से ज्यादा स्थानों पर एक से ज्यादा बार include Statement का प्रयोग करके Include कर लेते हैं, तो PHP Fatal Error Generate करता है। यानी Script जहां तक Execute हुई है, PHP उस Script को वहां से आगे Execute नहीं होने देता।
क्योंकि जब एक ही File को एक से ज्यादा बार समान Script में Include कर लिया जाता है, तो उस स्थिति में Include की जाने वाली File में यदि कोई Function हो, तो उस एक ही नाम के एक से ज्यादा Functions Current File में Embed हो जाते हैं और एक ही नाम के एक से ज्यादा Functions किसी भी PHP Program में नहीं हो सकते। इस परेशानी से बचने के लिए include Statement के स्थान पर include_once() Statement का प्रयोग किया जाता है।
जब हम include_once() Statement को Use करते हैं, तो PHP पहले ये Check करता है कि Include की जाने वाली File, Current Script में पहले से ही Included है या नहीं। यदि File पहले से ही Included हो, तो ये Function Execute नहीं होता, जिससे Specified File Current Script में फिर से Include नहीं होती, जबकि विपरीत स्थिति में ये Statement Specified File को Current Script में Include कर देता है। इस Statement को भी हम ठीक उसी तरह से Use करते हैं, जिस तरह से include() Statement को Use करते हैं।
require() Statement
जिस तरह से हम include Statement का प्रयोग करके किसी File को Current PHP Script File में Embed करते हैं, उसी तरह से हम require Statement का प्रयोग करके भी किसी File को Current Script File में Embed कर सकते हैं।
include व require में मूल रूप से कुछ अन्तर हैं। जब require Statement Fail होता है, यानी जब require Statement में Specify की गई File Current Script में Embed नहीं हो पाती है, तब ये Statement भी False Return करता है।
Fail होने की स्थिति में ये Statement Script E_COMPILE_ERROR नाम का एक Fatal Error Trigger करते हुए Script को Halt कर देता है, जबकि include Statement Fail होने की स्थिति में एक Warning Message E_WARNING तो देता है लेकिन Script के Execution को Halt नहीं करता।
एक और मुख्य अन्तर ये है कि हम इस Statement को यदि किसी Conditional if Statement में Use करते हैं, तो if Condition के Fail होने की स्थिति में भी इस Statement द्वारा Specify की गई File Script में Embed हो जाती है। साथ ही include Statement की तरह require Statement में Specify की गई Script ठीक वहीं पर Embed नहीं होती, जहां पर इस Statement को Script में Call किया गया है।
require_once() Statement
जिस तरह से हम include_once() Statement की तरह ही जब हम require_once() Statement का प्रयोग करते हैं, तब PHP पहले ये Check करता है कि इस Statement में Specify की गई File Script में पहले से Embedded है या नहीं। यदि File पहले से Embed हो, तो ये Statement उसी File को फिर से Current Script File में Embed नहीं करता।
हम किसी File को Current Script File में Embed करने के लिए ऊपर बताए गए किसी भी Statement का प्रयोग कर सकते हैं, लेकिन सामान्यतः हमें include_once() Statement का प्रयोग ही करना चाहिए और ज्यादातर Professionals किसी विशेष प्रकार की स्थिति न हो, तो इसी Statement का प्रयोग करके किसी File को Embed करते हैं।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook PHP in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
PHP in Hindi | Page: 647 | Format: PDF