如何在php函数外部分配变量

如何在php函数外部分配变量,php,function,variables,Php,Function,Variables,我希望能够在函数外部指定变量的名称,以便函数可以指定所选的变量。它似乎不起作用。有人有什么想法吗 下面是我的尝试,但是运行函数后,$admin变量为空 function assign_check($variable, $check) { if (empty($_POST[$check])) { $variable = "no"; } else { $variable = $_POST[$check]; } } assi

我希望能够在函数外部指定变量的名称,以便函数可以指定所选的变量。它似乎不起作用。有人有什么想法吗

下面是我的尝试,但是运行函数后,
$admin
变量为空

function assign_check($variable, $check) {
    if (empty($_POST[$check])) {
        $variable = "no";   
    } else {
        $variable = $_POST[$check];
    }       
}

assign_check('$admin', 'admin');
function assign_check($check) {
    if (empty($_POST[$check])) {
        return "no";   
    } else {
        return $_POST[$check];
    }       
}

$admin = assign_check('admin');

我的问题不是关于全局变量的使用。

您可以在函数体中请求引用

function assign_check(&$variable, $check) {
     $variable = 'hello';
}
并调用传递变量(引用)

$admin
值现在为“hello”

将其与代码相匹配将导致

function assign_check(&$variable, $check) {
    $variable = empty($_POST[$check]) ? "no" : $_POST[$check];
}

assign_check($admin', 'admin');

但是返回一个合适的值比使用引用的代码要干净得多。使用如上所述的三元运算符甚至可以简化,而不需要函数。

将函数结果指定给函数外部指定的变量名的正常方法是让函数返回结果,并在调用函数时将其直接指定给变量

function assign_check($variable, $check) {
    if (empty($_POST[$check])) {
        $variable = "no";   
    } else {
        $variable = $_POST[$check];
    }       
}

assign_check('$admin', 'admin');
function assign_check($check) {
    if (empty($_POST[$check])) {
        return "no";   
    } else {
        return $_POST[$check];
    }       
}

$admin = assign_check('admin');
除非有令人信服的理由,否则我会这样做

对于这个函数要做的特定类型的事情,我建议看一下。

,因为它需要重复“但是返回一个合适的值比使用引用要干净得多”。除非你有充分的理由,否则不要使用引用,这里没有什么能代表一个好的理由@罗洛夫科