2010-08-24 37 views
11

क्या कोई संभावित तरीका है जब एक फ़ाइल - कृपया ध्यान दें, केवल एक फ़ाइल। फ़ंक्शन को कॉल करने के लिए जब इसे अभी तक परिभाषित नहीं किया गया है, उदा।परिभाषित करने से पहले एक फ़ंक्शन को कॉल करना | PHP

<?php 

echo global_title(); 

function global_title() 
{ 
    $title = $_GET['name']; 

    return $title; 
} 

?> 

मुझे नहीं पता कि यह कैसे समझाया जाए, लेकिन यह काफी संभव नहीं है? किसी अन्य फ़ाइल से वैरिएबल के बारे में क्या (इसमें शामिल किए बिना) को एक अलग फ़ाइल में कहा जा सकता है, उदा।

config.php

<?php 

$db = "localhost"; 

?> 

index.php

<?php 

// I do not want it to be accessed by including it or using sessions 

echo $db; 

?> 

पता है कि मैं क्या मतलब है? :)

+2

आप अभी तक अपने कोड की कोशिश की है पर दस्तावेज़ पर उदाहरण 2 में के रूप में एक सशर्त समारोह की तरह है? –

उत्तर

24

आप इसे कॉल करने के बाद परिभाषित एक फ़ंक्शन को कॉल कर सकते हैं। ऐसा इसलिए है क्योंकि PHP पहले फ़ाइल को पार करता है और फिर इसे निष्पादित करता है।

चर के लिए - यह संभव नहीं है, आपको फ़ाइल को शामिल करना होगा।

+9

वैसे, फ़ंक्शंस जो एक सशर्त (जैसे 'if') में संलग्न नहीं हैं, उस फ़ाइल के संकलन के बाद उपलब्ध हैं। वेरिएबल्स केवल उस लाइन तक पहुंचने के बाद ही उपलब्ध हैं ... – ircmaxell

+0

@ircmaxell दिलचस्प नोट, क्यों कोई किसी कथन के अंदर एक फ़ंक्शन को परिभाषित करेगा? फ़ंक्शन के अंदर यदि कथन का मूल्यांकन किया जा रहा है, तो मूल्यांकन करना बेहतर नहीं होगा? –

+1

@DougMolineux, सशर्त संकलन पर पढ़ें। असल में, यदि फ़ंक्शन को संसाधित करना अनावश्यक है, तो नहीं। – Pacerier

1

आप अपरिभाषित फ़ंक्शन को कॉल नहीं कर सकते हैं, यह एक घातक त्रुटि उठाएगा। हालांकि प्रक्रियात्मक कोड में इसे कहा जा सकता है और बाद में परिभाषित किया जा सकता है। जैसा कि स्क्रिप्ट पहले पार्स किया गया है तब निष्पादित किया गया। में कोई फर्क नहीं पड़ता, वे व्यवहार करते हैं जैसे कि वे सही फ़ाइल में लिखे गए थे।

"फ़ाइल से" चर के रूप में ऐसी कोई चीज़ नहीं है। यदि कोड परिभाषित करता है कि चर नहीं चला है, तो यह वहां नहीं हो सकता है।

2

मुझे अभी पता चला है कि यदि आप बाद में उसी फ़ाइल में परिभाषित हैं तो आप एक फ़ंक्शन को कॉल कर सकते हैं।
लेकिन यदि यह किसी अन्य फ़ाइल में परिभाषित किया गया है, तो आपको फ़ंक्शन को कॉल करने से पहले फ़ाइल को शामिल करना होगा।

my_func(); 
function my_func() {...} 
---> No problem 

लेकिन

my_func(); 
include_once 'define_my_func.php'; 
---> PHP Fatal error 

यह user-defined functions

संबंधित मुद्दे