如何在php函数之外分配变量[重复]

Posted

技术标签:

【中文标题】如何在php函数之外分配变量[重复]【英文标题】:How to assign a variable outside php function [duplicate] 【发布时间】: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');

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

【问题讨论】:

【参考方案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

【讨论】:

以上是关于如何在php函数之外分配变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何等待module.export函数完成请求,然后再将其返回值分配给不同JS文件中的变量[重复]

js从一个函数重新分配一个值给多个已经声明的变量[重复]

如何将 Jquery 变量值发送或分配给 php 变量? [复制]

如何在 Angular 2 轮询服务中访问 .subscribe 之外的值

如何使用 PHP 会话来防止重复提交表单?

如何在php中访问foreach循环之外的多个变量