如何在独立函数之间共享相同的变量


How do I share same variable between independent functions

如何在独立函数之间共享相同的变量?我不想使用全局变量,目前,我不使用OO。这个例子只适用于嵌套函数:

$example = function() use ($id){
                    echo 'id is: ' . $id;
                };

是否有一种方法可以从不同的函数访问(读:调用)嵌套函数?然后我可以返回$id。

主要问题:我正在从数据库中检索ID,我希望主持人能够根据从数据库中检索到的ID编辑材料。

正如我在评论中提到的,我不是100%你所说的独立和嵌套函数是什么意思,但这里是PHP的(匿名函数)手册[http://php.net/manual/en/functions.anonymous.php]。

无论如何,我已经把一个样本放在一起假设你真的是指嵌套函数

<?php
function wrapperOne($id) {
    $newId = function($id) {
        return $id * 2;
    };
    return $newId($id);
}

function wrapperTwo($id) {
    $doSomething = function() use(&$id) {
        $id *= 3;
    };
    $doSomething();
    return $id;
}
echo wrapperOne(2); // 4;
echo PHP_EOL;
echo wrapperTwo(2); // 6;

你可以通过引用来读取这个

function changeMyID(&$id)
{
    $id = 1;
}
function printMyID($id)
{ 
    echo $id;
}
$id = 2;
changeMyID($id);
printMyID($id); // this will output 1;