在 PHP 函数中访问全局变量

Access a global variable in a PHP function(在 PHP 函数中访问全局变量)
本文介绍了在 PHP 函数中访问全局变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

根据大多数编程语言的作用域规则,我可以访问在函数内部定义的变量,但为什么这段代码不起作用?

According to the most programming languages scope rules, I can access variables that are defined outside of functions inside them, but why doesn't this code work?

<?php
    $data = 'My data';

    function menugen() {
        echo "[" . $data . "]";
    }

    menugen();
?>

输出为[].

推荐答案

这是一个范围问题.简而言之,应该避免使用全局变量所以:

It's a matter of scope. In short, global variables should be avoided so:

您要么需要将其作为参数传递:

You either need to pass it as a parameter:

$data = 'My data';

function menugen($data)
{
    echo $data;
}

或者把它放在一个类中并访问它

Or have it in a class and access it

class MyClass
{
    private $data = "";

    function menugen()
    {
        echo this->data;
    }

}

另请参阅@MatteoTassinari 答案,因为您可以将其标记为全局以访问它,但通常不需要全局变量,因此重新考虑您的编码是明智的.

See @MatteoTassinari answer as well, as you can mark it as global to access it, but global variables are generally not required, so it would be wise to re-think your coding.

这篇关于在 PHP 函数中访问全局变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

How to define global variable for Twig(如何为 Twig 定义全局变量)
Are global variables in PHP considered bad practice? If so, why?(PHP中的全局变量被认为是不好的做法吗?如果是这样,为什么?)
Is it possible to List Out All the Global variables in PHP?(是否可以列出PHP中的所有全局变量?)
Global variable in Laravel Blade(Laravel刀片中的全局变量)
How can i define global variables in slim framework(如何在超薄框架中定义全局变量)
Pass global variable to laravel group route from current url(将全局变量从当前URL传递给LARLAVEL组路由)