如何在php中声明全局变量?

2022-08-30 06:27:19

我有这样的代码:

<?
    $a="localhost";
    function body(){
        global $a;
        echo $a;
    }

    function head(){
        global $a;
        echo $a;
    }

    function footer(){
        global $a;
        echo $a;
    }
?>

有没有办法在一个地方定义全局变量,并使变量一次在所有函数中访问?不利用更多?$aglobal $a;


答案 1

可以改用 $GLOBALS 数组:

$GLOBALS['a'] = 'localhost';

function body(){

    echo $GLOBALS['a'];
}

手册中:

一个关联数组,包含对当前在脚本的全局范围内定义的所有变量的引用。变量名称是数组的键。


如果您有一组需要一些公共变量的函数,则具有属性的类可能比全局类更合适:

class MyTest
{
    protected $a;

    public function __construct($a)
    {
        $this->a = $a;
    }

    public function head()
    {
        echo $this->a;
    }

    public function footer()
    {
        echo $this->a;
    }
}

$a = 'localhost';
$obj = new MyTest($a);

答案 2

如果变量不会改变,你可以使用定义

例:

define('FOOTER_CONTENT', 'Hello I\'m an awesome footer!');

function footer()
{
    echo FOOTER_CONTENT;
}

推荐