php - 从嵌套函数内部的函数访问变量

标签 php function scope

在 PHP 中,您必须使用 global关键字以便在函数内部时从全局范围访问变量。但是,您如何访问 父函数范围内的变量?

在示例中:

function foo() {
    $content = 'foobar';

    function bar() {
        echo $content; // echos nothing
    }
}

如何访问 $content变量?

最佳答案

您有两个选择:

  1. $content 作为参数

    function foo() {
        $content = 'foobar';
    
        function bar($content) {
            echo $content . '1'; // 'foobar1'
        }
    
        bar();
    }
    
    foo();
    
  2. 使用闭包 ( PHP Manual ) (PHP 5.3.0+)

    请注意,与声明函数的“传统方式”相比,函数声明有点不同。

    function foo() {
        $content = 'foobar';
    
        $bar = function() use ($content) {
            echo $content . '1';
        };  // <-- As it's an assignment, end with a ';'
    
        $bar();
    }
    
    foo();  // 'foobar1'
    

关于php - 从嵌套函数内部的函数访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54282256/

相关文章:

node.js - templateData 变量从辅助函数返回未定义(docpad.coffee 配置文件)

R:如何向包中添加额外的功能?

php - 递归 PHP 正则表达式

python /多处理 : howto simplify "def" fields

php - 通过jquery将数据库中的列填充到select2中

javascript - "Unexpected end of input"- 代码学院剪刀石头布

function - 如何“检查”一个函数是否确实给出了随机结果?

javascript - 这适用于某些功能,但不适用于其他功能

PHP 如何查找字符串中以 $ 或 £ 符号开头的所有价格并将其替换为 Bootstrap 标签

php - 概念 - 组织数据库