0、一句话定义闭包,子函数能够定义父函数的局部变量php
一、几个关键字闭包
define 定义宏(C语言),定义常量(php)函数
static 定义至关于位置在函数内的全局变量(生命周期与函数定义域无关),但只对函数可见,函数可改变其值
spa
const 定义常量(PHP 5.3.0+)code
二、php使用静态变量:
生命周期
<?php function add(){ static $n = 0; $n++; echo $n . '<br />'; } add();//输出 1 add();//输出 2
三、js使用闭包内存
function f1(){ var n=0; function f2(){ n++; console.log(n); } return f2; } var add=f1(); add();//输出 1 add();//输出 2 //闭包两大特色:一、访问局部变量,二、一直保存在内存中
四、我的js闭包的理解,欢迎斧正io
一、因为js无法像通常语言C++,PHP等使用static达到函数内全局变量的效果,故使用闭包的一直保存在内存的特性达到了这个效果,如上面php和js代码的效果
console
二、闭包的特色使函数拥有了类的感受,访问局部变量比如访问私有属性,闭包至关于类的公共函数,调用外部函数比如类实例化,始终保持在内存中比如类具备全局的生命周期,bigger感受瞬间提升了。
function