【问题标题】:How to assign a variable outside php function [duplicate]如何在php函数之外分配变量[重复]
【发布时间】:2020-01-11 16:10:57
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: php function variables


    【解决方案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');
    

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

    【讨论】:

    • 因为它需要重复“但是返回一个正确的值会比使用引用更简洁的代码。”除非您有令人信服的理由,否则不要使用引用,并且这里没有任何内容代表一个很好的理由。 @roelofco
    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-21
      • 2012-12-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多