在PHP中封装匿名函数中的变量

我是一名JS开发人员,经常使用自动执行的匿名函数来尽量减少全球范围内的污染。

即:(JS)

(function(){
    var x = ...
})(); 

在PHP中使用相同的技术/建议最小化函数/变量名称冲突?

即:(PHP)

(function(){

    $x = 2;

    function loop($a){
        ...
    }

    loop($x);

})();

为了避免全球污染,请使用类和面向对象的方法:请参阅此处的PHP文档

为了进一步避免污染,避免静态和全局变量。

像Javascript中使用的闭包在Javascript中使用的原因是它(Javascript)是一种基于原型的语言,具有通常以OO为基础的语言显示的属性(形成意义上)。


是的,您可以在PHP中创建匿名函数,立即执行而不会污染全局名称空间;

call_user_func(function() {
  $a = 'hi';
  echo $a;
});

语法不如Javascript等效,但它的功能相同。 我发现这个构造非常有用,并且经常使用它。

你也可以返回这样的值;

$str = call_user_func(function() {
  $a = 'foo';
  return $a;
});

echo($str);   // foo
echo($a);     // Causes 'Undefined variable' error.
链接地址: http://www.djcxy.com/p/69321.html

上一篇: Wrapping variables in anonymous functions in PHP

下一篇: Comparing sentences according to their meaning