I am call a function which is defined in my smsconfig.php file like
$GLOBAL_URL_OF_THE_SITE= "http://webfaction";
function get_site_url(){
return $GLOBAL_URL_OF_THE_SITE;
}
In my index.php file, I am including that smsconfig.php file then I am doing the following:
<?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>
unfortunately my JS is not loading and I am getting the following error in 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"
Please tell me what I am doing wrong ?
Functions do not have access to global variables by default. You have to declare the variable with global
before accessing it:
$GLOBAL_URL_OF_THE_SITE= "http://webfaction";
function get_site_url(){
global $GLOBAL_URL_OF_THE_SITE;
return $GLOBAL_URL_OF_THE_SITE;
}
Without global
, you should be seeing a warning, which you may be suppressing:
PHP Notice: Undefined variable: GLOBAL_URL_OF_THE_SITE
It's a problem with variable scope. Your function can't see the variable, because the the variable is outside its scope. You should do something like this:
function get_site_url(){
$GLOBAL_URL_OF_THE_SITE= "http://webfaction";
return $GLOBAL_URL_OF_THE_SITE;
}
You may code without declaring global in function body by using array $GLOBALS
. This array has all global variables as keys.