-2

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

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

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

assign_check('$admin', 'admin');

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

4

2 回答 2

1

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

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

$admin = assign_check('admin');

我会这样做,除非有令人信服的理由不这样做。

对于看起来这个函数打算做的特定类型的事情,我建议查看filter_input.

于 2019-09-09T22:06:36.657 回答
1

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

function assign_check(&$variable, $check) {
     $variable = 'hello';
}

并调用传递变量(引用)。

assign_check($admin, 'admin');

$admin值现在是“你好”;

将其与您的代码相匹配会导致

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

assign_check($admin', 'admin');

但是返回一个正确的值会比使用引用更简洁。使用上面介绍的三元运算符甚至可以简化而不需要函数。

于 2019-09-09T22:04:36.977 回答