在 PHP 中的函数内部从外部获取变量

2022-08-30 12:49:27

我试图弄清楚如何使用在函数外部,在函数内部设置的变量。有什么办法可以做到这一点吗?我试图将变量设置为“全局”,但它似乎没有按预期工作。

我的代码的简单示例

$var = '1';

function() {
    $var + 1;
    return $var;
}

我希望它返回值 2。


答案 1

您需要在函数中使用全局关键字。http://php.net/manual/en/language.variables.scope.php

编辑(尴尬我忽略了这一点,感谢评论者)

...并将结果存储在某个地方

$var = '1';
function() {
    global $var;
    $var += 1;   //are you sure you want to both change the value of $var
    return $var; //and return the value?
}

答案 2

Globals会做到这一点,但通常很好远离。在较大的程序中,您无法确定是否存在行为,因为它们可以在整个程序中的任何位置进行更改。测试使用全局变量的代码变得非常困难。

另一种方法是使用类。

class Counter {
    private $var = 1;

    public function increment() {
        $this->var++;
        return $this->var;
    }
}

$counter = new Counter();
$newvalue = $counter->increment();

推荐