我有这样的代码:

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

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

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

有没有办法在一个地方定义全局变量,并使变量$a可以同时在所有函数中访问?没有更多地使用global $a;

推荐答案

可以改用$GLOBALS数组:

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

function body(){

    echo $GLOBALS['a'];
}

Manual人中:

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


如果您有一组需要一些公共变量的函数,则带属性的类可能是一个很好的 Select ,而不是全局变量:

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);

Php相关问答推荐

如何使用查询范围在Statamic中按组过滤用户?

dockerized laravel服务器拒绝POST请求

无法使用DOMPDF在PDF中呈现非ANSI字符

如何使用ms graph php sdk v2列出具有已知路径的DriveItem的子项

如何在不指定symfony列的情况下从数据库中获取行数组

Nginx重写扩展名为.php的动态URL

将变体设置字段添加到WooCommerce中的特定变量产品

Laveel Livewire Get Groupby姓名列表

为什么正则表达式与得到的文本块之前得到的也行?

根据未用于变体的产品属性隐藏WooCommerce发货方式

根据WooCommerce购物车页面中的自定义 Select 添加费用

如果为布尔值,则 for each 循环重新启动

创建一个Woocommerce我的帐户订单页面,仅显示已完成的订单

使用HPOS过滤WooCommerce中的订单列表

如果WooCommerce购物车在 checkout 时被清空,请重定向至store 页面

需要以一种形式执行两个操作

用于更新 WooCommerce 管理产品列表中库存数量的自定义输入字段

注册命名空间后如何获取xml node 值?

如何从 PHP 中的 .txt 文件中列出今天生日的人的姓名?

Laravel:ArgumentCountError: 函数 App\Mail 的参数太少