PHP में:
- मुझे कब उपयोग करना चाहिए
require
बनामinclude
? - मुझे कब उपयोग करना चाहिए
require_once
बनामinclude_once
?
PHP में:
require
बनाम include
?require_once
बनाम include_once
?जवाबों:
कर रहे हैं require
और include_once
साथ ही।
तो आपका सवाल यह होना चाहिए ...
require
बनाम include
?require_once
बनामrequire
आवश्यकता () फ़ंक्शन शामिल करने के लिए समान है (), सिवाय इसके कि यह त्रुटियों को अलग तरीके से संभालता है। यदि कोई त्रुटि होती है, तो शामिल () फ़ंक्शन एक चेतावनी उत्पन्न करता है, लेकिन स्क्रिप्ट निष्पादन जारी रखेगा। आवश्यकता () एक घातक त्रुटि उत्पन्न करती है, और स्क्रिप्ट बंद हो जाएगी।
2 का उत्तर यहां पाया जा सकता है ।
आवश्यकता_ऑनस () विवरण आवश्यकता के समान है () PHP को छोड़कर अगर यह जाँच करेगा कि क्या फाइल पहले ही शामिल की जा चुकी है, और यदि हां, तो इसे फिर से शामिल (आवश्यक) नहीं करना चाहिए।
require_once()
दो का तेज होगा
उपयोग
की आवश्यकता होती है
जब फ़ाइल है आवश्यक अपने आवेदन के द्वारा, एक महत्वपूर्ण संदेश टेम्पलेट या एक फ़ाइल युक्त विन्यास चर जो बिना एप्लिकेशन टूट जाएगा जैसे।
आवश्यकता_नहीं
जब फ़ाइल में ऐसी सामग्री होती है जो बाद के शामिल किए जाने पर एक त्रुटि उत्पन्न करती है, उदाहरण के
function important() { /* important code */}
लिए आपके आवेदन में निश्चित रूप से आवश्यक है, लेकिन चूंकि फ़ंक्शन को फिर से शुरू नहीं किया जा सकता है इसलिए इसे फिर से शामिल नहीं किया जाना चाहिए।
जब फ़ाइल की आवश्यकता न हो तो शामिल करें और नहीं मिलने पर आवेदन का प्रवाह जारी रहना चाहिए, उदाहरण के
लिए वर्तमान गुंजाइश या कुछ और से चर संदर्भित करने वाले टेम्पलेट्स के लिए महान
शामिल_अनुकूलित
निर्भरताएँ जो बाद में लोड करने या शायद दूरस्थ फ़ाइल समावेशन की त्रुटियों को उत्पन्न करती हैं जो आप HTTP ओवरहेड के कारण दो बार नहीं करना चाहते हैं।
लेकिन मूल रूप से, यह आपके ऊपर है कि कब कौन सा उपयोग करना है।
include
? include_once
? require
? require_once
?
मेरा सुझाव सिर्फ require_once
99.9% समय का उपयोग करना है।
उपयोग करने require
या include
इसके बजाय यह बताता है कि आपका कोड कहीं और पुन: उपयोग करने योग्य नहीं है, यानी कि जो स्क्रिप्ट आप वास्तव में खींच रहे हैं, वे एक वर्ग या कुछ फ़ंक्शन लाइब्रेरी उपलब्ध कराने के बजाय कोड निष्पादित करते हैं।
यदि आपको ऐसे कोड की आवश्यकता है / जिसमें कोड शामिल है, तो यह प्रक्रियात्मक कोड है, और आपको एक नया प्रतिमान जानने की आवश्यकता है । जैसे ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग, फंक्शन बेस्ड प्रोग्रामिंग या फंक्शनल प्रोग्रामिंग।
यदि आप पहले से ही OO या फ़ंक्शनल प्रोग्रामिंग कर रहे हैं, include_once
तो ज्यादातर का उपयोग करने में देरी हो रही है जहाँ स्टैक में आपको बग्स / त्रुटियों का पता चलता है। क्या आप जानना चाहते हैं कि do_cool_stuff()
जब आप बाद में इसके लिए कॉल करने जाते हैं, या वह क्षण उपलब्ध नहीं होता है, जो आपको लाइब्रेरी की आवश्यकता होने पर उपलब्ध होने की उम्मीद करता है ? आम तौर पर, यह तुरंत जानना सबसे अच्छा है अगर आपको किसी चीज़ की ज़रूरत है और उम्मीद नहीं है, तो बस उपयोग करें require_once
।
वैकल्पिक रूप से, आधुनिक ओओपी में, बस उपयोग पर अपनी कक्षाओं को ऑटोलड करें।
include
परिवार आम तौर पर एक सिरे से बुरा विचार कर रहे हैं (क्योंकि यह मौजूदा नहीं की किसी भी संभावना है कि फ़ाइलों सहित होने के लिए बहुत दुर्लभ है), और की है कि बाहर require_once
और require
, आप का उपयोग करना चाहिए require_once
जब फ़ाइलें जो सहित परिभाषित कार्यों या वर्गों होने के लिए अन्य जगहों पर उपयोग किया जाता है, या डेटाबेस कनेक्शन ऑब्जेक्ट्स की तरह require
त्वरित एकल, और फ़ाइलों को शामिल करने के लिए उपयोग करते हैं जो तुरंत शामिल होने पर सामान करते हैं। किसी भी बड़े वेब एप्लिकेशन में, बाद के प्रकार को शामिल करना असामान्य है।
require_once
से सबसे अधिक संभावना उम्मीदवार का उपयोग लगभग हर समय किया जाता है। विकल्पों के बीच छोटे ओवरहेड अंतर को देखते हुए, require
स्क्रिप्ट को रोकना सुनिश्चित करता है, मैं कई परिदृश्यों के बारे में नहीं सोच सकता, जहां कोई एप्लिकेशन फ़ाइल को शामिल किए बिना जीवित रह सकता है। और _once
डुप्लीकेट मुद्दों से बचाता है। जो कोई भी असहमति जताता है, वह जानता है कि वे ऐसा कर रहे हैं जो भी आवेदन या परिदृश्य को चुन सकता है।
_Once फ़ंक्शंस और बिना _once फ़ंक्शंस के बीच अंतर: बिना _once कोड के फिर से शामिल किया जाएगा जबकि _once फ़ंक्शंस के साथ PHP शामिल फ़ाइलों का ट्रैक रखता है और इसे केवल एक बार शामिल करेगा।
आवश्यकता और शामिल के बीच अंतर: यदि आवश्यक फ़ाइल नहीं मिली है तो PHP एक घातक त्रुटि का उत्सर्जन करेगा जबकि केवल एक चेतावनी शामिल करने के लिए उत्सर्जित किया जाएगा।
include()
अगर यह फ़ाइल को शामिल नहीं कर सकता है, तो एक चेतावनी फेंक देगा, लेकिन बाकी स्क्रिप्ट चलेगी।
require()
E_COMPILE_ERROR
अगर यह फ़ाइल को शामिल नहीं कर सकता है तो स्क्रिप्ट को फेंक देगा और रोक देगा ।
include_once()
और require_once()
कार्यों को दूसरी बार फ़ाइल शामिल नहीं होगा अगर यह पहले से ही शामिल किया गया है।
निम्नलिखित प्रलेखन पृष्ठ देखें:
जब भी आप उपयोग require_once()
कर रहे हों, तब किसी अन्य फ़ाइल को शामिल करने के लिए फ़ाइल में उपयोग किया जा सकता है जब आपको वर्तमान फ़ाइल में केवल एक बार कॉल की आवश्यकता होती है। यहाँ उदाहरण में मेरे पास एक test1.php है।
<?php
echo "today is:".date("Y-m-d");
?>
और एक अन्य फाइल में जिसे मैंने test2.php नाम दिया है
<?php
require_once('test1.php');
require_once('test1.php');
?>
जैसा कि आप देख रहे हैं कि मी को दो बार टेस्ट 1 फाइल की आवश्यकता है, लेकिन फाइल में टेस्ट 1 को एक बार शामिल किया जाएगा और दूसरी बार कॉल करने के लिए इसे नजरअंदाज कर दिया जाएगा। और बिना रुके आउटपुट को एक बार प्रदर्शित करेगा।
जब भी आप _ शामिल_नसे () का उपयोग कर रहे हों ’का उपयोग फाइल में तब किया जा सकता है जब दूसरी फ़ाइल को शामिल करने के लिए आपको वर्तमान फ़ाइल में एक से अधिक बार फाइल की आवश्यकता होती है। यहाँ उदाहरण में मेरे पास test3.php नाम की एक फाइल है।
<?php
echo "today is:".date("Y-m-d");
?>
और दूसरी फाइल में जिसे मैंने test4.php नाम दिया है
<?php
include_once('test3.php');
include_once('test3.php');
?>
जैसा कि आप देख रहे हैं कि test3 फ़ाइल सहित m फाइल को एक बार शामिल करेगा लेकिन आगे के निष्पादन को रोक देगा।
आपको फ़ाइलों में व्यवस्थित वर्ग और फ़ंक्शन परिभाषाएँ रखनी चाहिए।
निर्भरता (वर्ग, कार्य, स्थिरांक) require_once()
लोड करने के लिए उपयोग करें ।
टेम्पलेट जैसी फ़ाइलोंrequire()
को लोड करने के लिए उपयोग करें ।
वैकल्पिक निर्भरता (वर्ग, कार्य, स्थिरांक) include_once()
लोड करने के लिए उपयोग करें ।
वैकल्पिक टेम्पलेट जैसी फ़ाइलोंinclude()
को लोड करने के लिए उपयोग करें ।
यह सवाल सात साल पहले पूछा गया था, और कोई भी उत्तर प्रश्न के लिए व्यावहारिक मदद नहीं करता है। आधुनिक PHP प्रोग्रामिंग में आप मुख्य रूप से required_once
केवल एक बार अपने ऑटोलैडर क्लास (कंपोजर ऑटोलैडर को अक्सर) को शामिल करने के लिए उपयोग करते हैं, और यह आपकी सभी कक्षाओं और कार्यों को लोड करेगा (फ़ंक्शन फ़ाइलों को composer.json
अन्य सभी फाइलों में उपलब्ध होने के लिए फ़ाइल में स्पष्ट रूप से जोड़ा जाना चाहिए)। यदि किसी भी कारण से आपकी कक्षा ऑटोलैडर से लोड करने योग्य नहीं है जिसे आप require_once
इसे लोड करने के लिए उपयोग करते हैं।
ऐसे कुछ अवसर हैं जिनका हमें उपयोग करने की आवश्यकता है require
। उदाहरण के लिए, यदि आपके पास वास्तव में बड़ी सरणी परिभाषा है और आप इसे अपने वर्ग परिभाषा स्रोत कोड में नहीं जोड़ना चाहते हैं:
<?php
// arr.php
return ['x'=>'y'];
<?php
//main.php
$arr= require 'arry.php'
यदि आप जिस फ़ाइल को शामिल करने का इरादा रखते हैं, उसमें कुछ निष्पादन योग्य होता है या कुछ चर की घोषणा करता है require
, जिन्हें आपको लगभग हमेशा उपयोग करने की आवश्यकता होती है , क्योंकि यदि आप require_once
पहली जगह के अलावा उपयोग करते हैं तो आपके कोड को निष्पादित नहीं किया जाएगा और / या आपके चर चुपचाप आरंभ नहीं करेंगे, जिसके कारण पूरी तरह से कठिन हैं।
वहाँ के लिए कोई व्यावहारिक उपयोग मामला है include
और include_once
वास्तव में।
include()
अपने अस्थायी इंजन को लागू करने के लिए आउटपुट बफर में लिपटे एक का उपयोग करेंगे ।
require()
बड़ी फ़ाइलों को विभाजित करने के लिए लगभग कोई भी उपयोग नहीं करता है।
require_once
एक फ़ंक्शन के अंदर PHPMailer के लिए उपयोग किया जाता है, और मेरे ऑटोलैडर को $mail
कोड में बाद में आवश्यक चर को परिभाषित करता है , इसलिए अगले require_once
को अनदेखा कर दिया जाता है, जो $mail
कि प्रारंभ नहीं हुआ! समाधान केवल require
फ़ंक्शन कॉल के बाद उपयोग करने के लिए था ।
require
उन मामलों में उपयोग नहीं करते हैं ?
अंतर यह है कि कमांड उत्पन्न होने वाली त्रुटि में है। इसके साथ require
, जिस फ़ाइल का आप उपयोग करना चाहते हैं वह वास्तव में आवश्यक है और इस प्रकार E_ERROR
यदि यह नहीं मिलती है तो उत्पन्न होती है।
require()
के समान हैinclude()
विफलता यह भी एक घातक उत्पादन करेगा पर सिवायE_ERROR
स्तर त्रुटि।
include
केवल एक E_WARNING
त्रुटि उत्पन्न करता है अगर यह विफल रहता है जो अधिक या कम मौन है।
इसलिए यदि शेष कोड काम करने के लिए फ़ाइल की आवश्यकता है, तो इसका उपयोग करें और आप चाहते हैं कि फ़ाइल को विफल करने के लिए स्क्रिप्ट उपलब्ध नहीं है।
के लिए *_once()
:
include_once()
ऐसे मामलों में उपयोग किया जा सकता है जहां स्क्रिप्ट के किसी विशेष निष्पादन के दौरान एक ही फ़ाइल को शामिल किया जा सकता है और एक से अधिक बार मूल्यांकन किया जा सकता है, इसलिए इस मामले में यह फ़ंक्शन पुनर्निर्धारण, चर मान पुन: असाइनमेंट आदि जैसी समस्याओं से बचने में मदद कर सकता है।
उसी पर लागू होता है require_once()
।
संदर्भ: require()
,include_once()
require
E_COMPILE_ERROR देता है, E_ERROR नहीं।
प्राधिकरण की तरह महत्वपूर्ण भागों की आवश्यकता है, और अन्य सभी को शामिल करें।
मल्टीपल में केवल बहुत खराब डिज़ाइन शामिल हैं और इसे बिल्कुल टाला जाना चाहिए। तो, * _once वास्तव में कोई फर्क नहीं पड़ता।
शामिल करें / आवश्यकता करें आप एक से अधिक फ़ाइल को एक से अधिक बार भी शामिल कर सकते हैं:
आवश्यकता () शामिल करने के लिए समान है () विफलता के अलावा यह एक घातक E_COMPILE_ERROR स्तर की त्रुटि भी उत्पन्न करेगा। दूसरे शब्दों में, यह स्क्रिप्ट को रोक देगा जबकि () केवल एक चेतावनी (E_WARNING) का उत्सर्जन करता है जो स्क्रिप्ट को जारी रखने की अनुमति देता है।
पीएचपी को शामिल करना / शामिल करने की आवश्यकता समान है यदि फ़ाइल पहले से ही शामिल है, और यदि ऐसा है, तो इसे फिर से शामिल करने (आवश्यकता) को शामिल न करें।
include()
यह फ़ाइल नहीं मिलने पर एक चेतावनी उत्पन्न करेगा, लेकिन require_once()
एक घातक त्रुटि उत्पन्न करेगा।
एक और बात यह है कि फ़ाइल पहले शामिल है। फिर require_once()
इसे फिर से शामिल नहीं करेंगे।
मैं नीचे दिए गए फ़ंक्शन का उपयोग कर रहा था:
function doSomething() {
require_once(xyz.php);
....
}
Xyz.php में निरंतर मूल्य घोषित किए गए थे।
मुझे इस doSomething () फ़ंक्शन को किसी अन्य PHP स्क्रिप्ट फ़ाइल से कॉल करना होगा।
लेकिन मैंने इस फ़ंक्शन को लूप में कॉल करते समय व्यवहार को देखा, पहले पुनरावृत्ति के लिए doSomething () के भीतर निरंतर मान मिल रहा था xyz.php
, लेकिन बाद में प्रत्येक पुनरावृत्ति doSomething()
में घोषित निरंतर मान प्राप्त करने में सक्षम नहीं था xyz.php
।
मैंने अपनी समस्या हल कर ली require_once()
है include()
, अद्यतन doSomething()
कोड निम्नानुसार है:
function doSomething() {
include(xyz.php);
....
}
अब प्रत्येक पुनरावृति कॉल doSomething()
निरंतर मूल्यों को परिभाषित करता है xyz.php
।
से मैनुअल :
require()
के समान हैinclude()
विफलता यह भी एक घातक उत्पादन करेगा पर सिवायE_COMPILE_ERROR
स्तर त्रुटि। दूसरे शब्दों में, यह स्क्रिप्ट को रोक देगा जबकिinclude()
केवल एक चेतावनी (E_WARNING
) का उत्सर्जन करता है जो स्क्रिप्ट को जारी रखने की अनुमति देता है।
_once()
वेरिएंट के लिए भी यही सच है ।
PSR-0 / PSR-4
ऑटोलरोलर्स की उम्र में , किसी भी कथन का उपयोग करने के लिए पूरी तरह से अनावश्यक हो सकता है यदि आपको ज़रूरत है तो अपने कोड के लिए कुछ फ़ंक्शन / कक्षाएं उपलब्ध कराने की आवश्यकता है (बेशक, आपको अभी भी require_once
अपनी बूटस्ट्रैप फ़ाइल और include
टेम्पलेट्स में खुद को ऑटोलैडर करने की आवश्यकता है यदि आप अभी भी एक टेम्पलेट इंजन के रूप में PHP का उपयोग करें)।
एक का उपयोग कब करना चाहिए require
या include
?
require
और include
कार्यों में एक ही काम के लिए, यानी भी शामिल है और निर्दिष्ट फ़ाइल का मूल्यांकन करता है, लेकिन अंतर यह है करना require
एक गंभीर त्रुटि का कारण होगा जब निर्दिष्ट फ़ाइल स्थान अवैध या किसी भी त्रुटि के लिए है, जबकि include
एक चेतावनी पैदा करते हैं और कोड निष्पादन जारी रहेगा।
तो आप require
उस मामले में फ़ंक्शन का उपयोग कर सकते हैं जहां आप जिस फ़ाइल को शामिल करने का प्रयास कर रहे हैं वह सिस्टम का दिल है और बाकी कोड पर बहुत अधिक प्रभाव डाल सकता है और include
जब आप जिस फ़ाइल को शामिल करने का प्रयास कर रहे हैं वह फ़ंक्शन का उपयोग कर सकता है कुछ कम महत्वपूर्ण कोड युक्त सरल फ़ाइल।
और मेरी व्यक्तिगत सिफारिश (कम महत्वपूर्ण कोड के लिए) require
आपके कोड में हर जगह फ़ंक्शन के लिए जाना है, जबकि यह विकास के चरण में है जैसे कि आप कोड को डीबग कर सकते हैं और बाद में इसे कार्य करने के लिए इसे स्थानांतरित करने से पहले require
फ़ंक्शन द्वारा सभी कार्यों को प्रतिस्थापित कर सकते हैं include
जैसे कि यदि आप याद करते हैं किसी भी कीड़े यह अंत उपयोगकर्ता को प्रभावित नहीं करेगा और बाकी कोड ठीक से निष्पादित होता है ...
एक का उपयोग कब करना चाहिए require_once
या require
?
के बीच मूल अंतर require
और require_once
है require_once
कि क्या फ़ाइल पहले से ही शामिल है या नहीं की जाँच करेगा, यदि वह पहले तो शामिल किया गया है यह जबकि फ़ाइल शामिल नहीं होगा require
समारोह फ़ाइल कि क्या फ़ाइल पहले से शामिल है पर ध्यान दिए बिना या नहीं शामिल होंगे।
तो ऐसे मामलों में जहां आप कोड के कुछ टुकड़े को बार-बार शामिल करना चाहते हैं और फिर से require
फ़ंक्शन का उपयोग करना चाहते हैं, जबकि यदि आप अपने कोड में केवल एक बार कुछ कोड शामिल करना चाहते हैं, तो उपयोग करें require_once
।
जब आपको किसी भी वर्ग, फ़ंक्शन या निर्भरता को लोड करने की आवश्यकता होती है, तो फ़ंक्शन का उपयोग करें ।
जब आप टेम्प्लेट स्टाइल फ़ाइल लोड करना चाहते हैं, तो फ़ंक्शन का उपयोग करें
यदि आप अभी भी उलझन में हैं, तो सभी समय के लिए requirement_once का उपयोग करें ।
वे फ़ाइलों को शामिल करने के सभी तरीके हैं।
आवश्यकता है इसका मतलब यह चाहिए। Need_once का अर्थ है कि इसे इसकी आवश्यकता होगी लेकिन केवल एक बार इसकी आवश्यकता है। शामिल करें का अर्थ है इसमें एक फ़ाइल शामिल होगी लेकिन इसे जारी रखने के लिए इसकी आवश्यकता नहीं है।
उदाहरण:
Require 'filename'
Require_once 'filename'
Include 'filename'
इसमें एक शामिल_ कार्य भी है जिसमें एक बार एक फ़ाइल शामिल है।
Include_once 'filename'
जहां मेरे पास मेरे फोन से टाइप हो रहा है, वहां बड़े अक्षरों का प्रयोग न करें।
एक बात जिस पर मैंने गौर किया, शामिल करते समय मैं केवल उस फ़ाइल से सम्मिलित फ़ाइलों के कार्यों को शामिल कर सकता हूं जिसमें यह शामिल था। आवश्यकता_ऑनसे के साथ, मैं उस फ़ंक्शन को दूसरी आवश्यक_ऑन फ़ाइल में चला सकता हूं।
यह भी: मैं जोड़ने की सलाह देता हूं
if(file_exists($RequiredFile)){
require_once($RequiredFile);
}else{
die('Error: File Does Not Exist');
}
क्योंकि जब requ_once पृष्ठ को मारता है, तो यह कभी-कभी आपकी वेबसाइट फ़ाइलों की निर्देशिका को प्रतिध्वनित कर सकता है
यहाँ एक कस्टम फंक्शन है जिसे मुझे फ़ाइलों की आवश्यकता है:
function addFile($file, $type = 'php', $important=false){
//site-content is a directory where I store all the files that I plan to require_once
//the site-content directory has "deny from all" in its .htaccess file to block direct connections
if($type && file_exists('site-content/'.$file.'.'.$type) && !is_dir('site-content/'.$file.'.'.$type)){
//!is_dir checks that the file is not a folder
require_once('site-content/'.$file.'.'.$type);
return 'site-content/'.$file.'.'.$type;
}else if(!$type && file_exists('site-content/'.$file) && !is_dir('site-content/'.$file)){
//if you set "$type=false" you can add the file type (.php, .ect) to the end of the "$file" (useful for requiring files named after changing vars)
require_once('site-content/'.$file);
return 'site-content/'.$file;
}else if($important){
//if you set $important to true, the function will kill the page (which also prevents accidentally echoing the main directory path of the server)
die('Server Error: Files Missing');
return false;
}else{
//the function returns false if the file does not exist, so you can check if your functions were successfully added
return false;
}
}
उपयोग उदाहरण:
$success = addFile('functions/common');
if($success){
commonFunction();
}else{
fallbackFunction();
}
मूल रूप से, यदि आपको एक गलत पथ की आवश्यकता है, तो PHP एक घातक त्रुटि फेंकता है और शटडाउन फ़ंक्शन को कहा जाता है, लेकिन जब आप एक गलत पथ शामिल करते हैं, तो PHP निष्पादन जारी रखेगा, लेकिन यह केवल एक चेतावनी प्रदर्शित करेगा कि फ़ाइल मौजूद नहीं है।
अंग्रेजी शब्द की आवश्यकता से , PHP को बताया जाता है कि पृष्ठ या फ़ाइल का निष्पादन आवश्यक फ़ाइल पर निर्भर करता है।
मेरे अनुभव से, कॉन्फ़िगरेशन फ़ाइल, डेटाबेस क्लास और अन्य महत्वपूर्ण उपयोगिताओं जैसी महत्वपूर्ण फ़ाइलों की आवश्यकता के लिए यह आदर्श है।
यह अक्सर एक मामला है कि क्या आप एक ग्राहक पुस्तकालय को सशर्त लोड करना चाहते हैं, या आगे बढ़ें और लोड करें कि आप इसका उपयोग करने जा रहे हैं या नहीं।
यहाँ ठोस उदाहरण है; pcj ने क्या कहा, इस पर विस्तार से बताते हैं।
मान लें कि आपके पास अपने डेटाबेस उपयोगकर्ता नाम और पासवर्ड को संग्रहीत करने वाली कॉन्फ़िगरेशन फ़ाइल है (conf.php):
<?php
//my site configuration file
//For Database
$location='localhost';
$dbuser='yourname';
$userpw='yourpassword';
$database='nameofdatabase';
?>
और एक स्थिर फ़ंक्शन के साथ एक वर्ग जो डेटाबेस का उपयोग करता है:
<?php
class UsedInLoop {
public static function databaseQuery(){
require(/path/to/conf.php); //require_once will not work here
$db = new mysqli($location, $dbuser, $userpw, $database);
//yada yada yada
}
}
?>
और उस स्थैतिक फ़ंक्शन का उपयोग किसी अन्य फ़ंक्शन के अंदर किया जाता है जिसे लूप के अंदर पुनरावृत्ति कहा जा रहा है:
<?php
require_once('path/to/arbitraryObject.php'); //either will likely be OK at this level
$obj = new arbitraryObject();
foreach($array as $element){
$obj->myFunction();
}
?>
आपको केवल एक बार कक्षा की आवश्यकता / शामिल कर सकते हैं। यदि आपको अपने लूप के प्रत्येक पुनरावृत्ति पर इसकी आवश्यकता / शामिल है, तो आपको एक त्रुटि मिलेगी। हालाँकि, आपको अपनी फ़ंक्शनल फ़ाइल को हर बार शामिल करना होगा जब स्टैटिक फंक्शन कहा जाता है।
<?php
class arbitraryObject {
public function myFunction(){
require_once(/path/to/UsedInLoop.php); //This must be require_once. require() will not work
UsedInLoop::databaseQuery();
}
}
?>
बेशक, इसे फंक्शन से बाहर ले जाना उस समस्या का हल हो सकता है:
<?php
require(/path/to/UsedInLoop.php); //now require() is fine
class arbitraryObject {
public function myFunction(){
UsedInLoop::databaseQuery();
}
}
?>
जब तक आप एक वर्ग को लोड करने के ओवरहेड से चिंतित हैं जो केवल कुछ शर्तों में उपयोग किया जा सकता है और जब यह नहीं है तो इसे लोड नहीं करना चाहता।
require
अधिक से अधिक उपरि है include
, क्योंकि इसे पहले फ़ाइल को पार्स करना है। के requires
साथ प्रतिस्थापित includes
अक्सर एक अच्छा अनुकूलन तकनीक है।
require
फ़ाइल को किसी भी अधिक से पार्स नहीं include
करता है। _once
उन कार्यों प्रत्येक के संस्करणों भूमि के ऊपर का एक सा है, लेकिन अन्य लोगों की तरह कहा है, यह सबसे अनुप्रयोगों में नगण्य के काफी करीब है।
बस आवश्यकता का उपयोग करें और शामिल करें।
क्योंकि सोचें कि कैसे शामिल करना है। यह लॉग डेटा की तलाश में है जो PHP फ़ाइलों को शामिल या आवश्यक सहेजता है। तो यह शामिल है और आवश्यकता से धीमी है।
if (!defined(php)) {
include 'php';
define(php, 1);
}
बस इस तरह का उपयोग ...