美好的一天。
当我在包含在一个文件中的某些文件中使用globals元素时,我遇到了问题。
构建我可以看到的文件:
文件:
-index.php
--function.php
--globals.php
--lang.php
--allfunction.php
编码您可以看到的所有页面:
代码index.php:
<?
session_start();
require_once("./function.php");
select();
?>
代码function.php:
<?php
require_once("./globals.php");
require_once(dirname(__FILE__)."/lang.php");
include_once Language(3);
require_once(dirname(__FILE__)."/allfunction.php");
?>
代码globals.php:
<?
$dirang = './';
$langfile = 'lang.php';
$test = 'hello';
}
?>
代码lang.php:
<?
Language($rem){
return $GLOBALS["langfile"]; //ex.
}
?>
代码allfunction.php:
<?
echo $GLOBALS["test"]; //ex.
}
?>
当我在$GLOBALS["test"]
中使用allfunction.php
时,我得到了问题。
我收到错误Undefened index test in allfunction.php on line ....
请告诉我为什么我会收到错误以及如何在allfunction.php
中使用全局元素?
答案 0 :(得分:0)
你应该在你使用它们的文件中编写全局变量,例如。如果在allfunction.php
中使用全局变量,则必须在此文件中编写全局变量(在其中使用它们)
不要使用带有全局变量的单独文件。
答案 1 :(得分:0)
不要使用全局变量。将变量存储在静态Config
或Registry
类中。另请阅读singleton design pattern。
示例:
config.php
<?php
class Config
{
static $var1 = '...';
static $var2 = '...';
public static function init()
{
self::$var2 = 1+1; //expressions go here
}
}
Config::init();
usage.php
<?php
require_once 'config.php';
function x()
{
$someKindOfSetting = Config::$var1;
}