2010-03-08 14 views
10

कैसे एक PHP समारोह एक फ़ाइल के भीतर ही दिखाई बनाने के लिए? बाहरी फ़ाइल के लिए दृश्यमान नहीं है। दूसरे शब्दों में, कुछ सीएक PHP फ़ंक्शन कैसे बनाएं केवल फ़ाइल में दिखाई दे?

+0

जब आप पीएचपी पर फ़ाइलों में शामिल हैं यह है के रूप में यदि आप एक साथ उन्हें जोड़कर कर रहे हैं सी/C++ आप चर/कार्य/वर्गों "आयात" कर रहे हैं। – rook

उत्तर

9

में स्थिर समारोह के बराबर वहाँ कोई रास्ता नहीं है वास्तव में एक समारोह केवल एक फ़ाइल के भीतर दृश्यमान बनाने के लिए है। लेकिन, आप समान चीजें कर सकते हैं।

उदाहरण के लिए, एक लैम्ब्डा समारोह बनाने के एक चर के लिए असाइन करें, और सेट किए बिना यह है जब आपके किया:

$func = function(){ return "yay" }; 

$value = $func(); 

unset($func); 

यह है कि अपनी स्क्रिप्ट प्रक्रियात्मक है प्रदान की जाती है।

तुम भी नामस्थान के साथ चारों ओर खेल सकते हैं।


आपका सबसे अच्छा शर्त एक वर्ग बनाने के लिए, और बनाने के विधि निजी

+1

क्लोजर/लैम्ब्डा कार्य (ध्यान दें कि इन कम से कम php 5.3 की आवश्यकता होती है) शायद फिर से सोच को छिपाने अपनी जरूरत के अन्य फ़ाइलों से समारोह के अलावा अपने ही एकमात्र विकल्प हैं। आपको शायद ऐसा करने की ज़रूरत नहीं है। – meagar

3

एक कक्षा बनाएं और विधि निजी बनाने के लिए है।

<?php 
class Foo 
{ 
    private $bar = 'baz'; 

    public function doSomething() 
    { 
     return $this->bar = $this->doSomethingPrivate(); 
    } 

    private function doSomethingPrivate() 
    { 
     return 'blah'; 
    } 
} 
?> 
0

अपनी खुद की दृश्यता लागू करने के लिए namespace का उपयोग करें।

पीएचपी दुनिया में, नामस्थान दो समस्याओं को हल करने के लिए डिज़ाइन कर रहे हैं पुस्तकालयों के लेखकों और अनुप्रयोगों सामना करते हैं इस तरह के वर्ग या कार्यों के रूप में फिर से प्रयोग करने योग्य कोड तत्वों बनाने:

कोड के बीच
  1. नाम टकराव आप बनाते हैं, और आंतरिक PHP वर्ग/कार्य/स्थिरांक या तृतीय-पक्ष वर्ग/कार्य/स्थिरांक बनाते हैं।
  2. उर्फ ​​करने की क्षमता (या छोटा) पहली समस्या को कम करने के लिए, स्रोत कोड की पठनीयता में सुधार के लिए बनाया गया Extra_Long_Names।
संबंधित मुद्दे