是否可以在 PHP 中访问外部局部变量?

Is it possible to access outer local variable in PHP?(是否可以在 PHP 中访问外部局部变量?)
本文介绍了是否可以在 PHP 中访问外部局部变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以在 PHP 子函数中访问外部局部变量?

Is it possible to access outer local varialbe in a PHP sub-function?

在下面的代码中,我想访问内部函数栏中的变量 $l.在栏中将 $l 声明为 global $l 不起作用.

In below code, I want to access variable $l in inner function bar. Declaring $l as global $l in bar doesn't work.

function foo()
{
    $l = "xyz";

    function bar()
    {
        echo $l;
    }
    bar();
}
foo();

推荐答案

你或许可以使用闭包来做到这一点......

You could probably use a Closure, to do just that...


花了一些时间来记住语法,但它看起来像这样:


Edit : took some time to remember the syntax, but here's what it would look like :

function foo()
{
    $l = "xyz";
    $bar = function () use ($l)
    {
        var_dump($l);
    };
    $bar();
}
foo();

而且,运行脚本,你会得到:

And, running the script, you'd get :

$ php temp.php
string(3) "xyz"


一些注意事项:


A couple of note :

  • 你必须在函数声明之后放一个;
  • 你可以通过引用use变量,在它的名字前加上一个&:use (& $l)
  • You must put a ; after the function's declaration !
  • You could use the variable by reference, with a & before it's name : use (& $l)

更多信息,作为参考,你可以看看手册中的这个页面:匿名函数

For more informations, as a reference, you can take a look at this page in the manual : Anonymous functions

这篇关于是否可以在 PHP 中访问外部局部变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Smarty local variable concatenation with string(Smarty局部变量与字符串连接)
How to declare the type for local variables using PHPDoc notation?(如何使用 PHPDoc 表示法声明局部变量的类型?)