从php中的另一个页面调用一个函数

时间:2012-09-25 14:00:23

标签: php

我调用的函数在我的smsconfig.php文件中定义,如

$GLOBAL_URL_OF_THE_SITE= "http://webfaction";


function get_site_url(){
    return $GLOBAL_URL_OF_THE_SITE; 
}

在我的index.php文件中,我包含了smsconfig.php文件,然后我正在执行以下操作:

  <?php 
    include("smsconfig.php");
    ?>
    <html>
    <head >
     <link rel="stylesheet" type="text/css" href="default.css" />
        <script src="<?php echo get_site_url();?>/UI/jquery/jquery-1.7.2.min.js" type="text/javascript"></script>

不幸的是我的JS没有加载,我在firebug中收到以下错误:

"NetworkError: 404 Not Found - http://webfaction/UI/%3Cbr%20/%3E%3Cb%3ENotice%3C/b%3E:%20%20Undefined%20variable:%20GLOBAL_URL_OF_THE_SITE%20in%20%3Cb%3E/opt/lampp/htdocs/UI/smsconfig.php%3C/b%3E%20on%20line%20%3Cb%3E11%3C/b%3E%3Cbr%20/%3E/UI/jquery/jquery-1.7.2.min.js"

请告诉我我做错了什么?

3 个答案:

答案 0 :(得分:4)

默认情况下,函数无权访问全局变量。在访问变量之前,您必须使用global声明变量:

$GLOBAL_URL_OF_THE_SITE= "http://webfaction";

function get_site_url(){
    global $GLOBAL_URL_OF_THE_SITE;

    return $GLOBAL_URL_OF_THE_SITE; 
}

如果没有global应该看到警告,您可能会压制它:

  

PHP注意:未定义的变量:GLOBAL_URL_OF_THE_SITE

答案 1 :(得分:0)

这是可变范围的问题。您的函数无法查看变量,因为该变量超出了其范围。你应该这样做:

function get_site_url(){
    $GLOBAL_URL_OF_THE_SITE= "http://webfaction";

    return $GLOBAL_URL_OF_THE_SITE; 
}

答案 2 :(得分:0)

您可以使用数组$GLOBALS进行编码,而无需在函数体中声明全局。此数组将所有全局变量作为键。