~~~
/**
* 一个利用闭包的计数器产生器
* 这里其实借鉴的是python中介绍闭包时的例子...
* 我们可以这样考虑:
* 1. counter函数每次调用, 创建一个局部变量$counter, 初始化为1.
* 2. 然后创建一个闭包, 闭包产生了对局部变量$counter的引用.
* 3. 函数counter返回创建的闭包, 并销毁局部变量, 但此时有闭包对$counter的引用,
* 它并不会被回收, 因此, 我们可以这样理解, 被函数counter返回的闭包, 携带了一个游离态的
* 变量.
* 4. 由于每次调用counter都会创建独立的$counter和闭包, 因此返回的闭包相互之间是独立的.
* 5. 执行被返回的闭包, 对其携带的游离态变量自增并返回, 得到的就是一个计数器.
* 结论: 此函数可以用来生成相互独立的计数器.
*/
function counter() {
$counter = 1;
return function() use(&$counter) {return $counter ++;};
}
$counter1 = counter();
$counter2 = counter();
echo "counter1: " . $counter1() . "<br />/n";
echo "counter1: " . $counter1() . "<br />/n";
echo "counter1: " . $counter1() . "<br />/n";
echo "counter1: " . $counter1() . "<br />/n";
echo "counter2: " . $counter2() . "<br />/n";
echo "counter2: " . $counter2() . "<br />/n";
echo "counter2: " . $counter2() . "<br />/n";
echo "counter2: " . $counter2() . "<br />/n";
?>
~~~
- 目录
- Array
- array_column()
- 数组和变量
- compact() 函数
- extract() 函数
- Url
- base64_encode — 使用 MIME base64 对数据进行编码
- 图像
- getimagesize()
- 随机数
- getrandmax
- mt_getrandmax
- mt_rand
- rand
- empty函数
- exec()函数
- 权限修改
- 可变函数
- 函数闭包
- 报警级别
- 持续函数
- 自定义
- 字符处理
- 中文首字母
- 随机字符串
- url函数
- parse_url_param
- 页面采集
- 简单采集
- Referer采集
- CURL
- 发送json数据
- Curl多线程
- 文件处理
- 递归删除
- 图片显示
- 类方法
- 保留字
- 检查类文件名称
- Cookie
- 数组
- 数学函数
- 第三方函数库
- 精度计算
- BC Math
- 计算执行时间
- 日期时间
- 时间戳
- header
- 调试函数
- get_class
- get_class_methods
- 数组函数
- array_intersect_key()
- 二维数组
- Base64编码
- URL安全
- 加密扩展
- Hash函数
- hash_file
- hash_hmac
- hash_algos
- 文件读写
- is_writable()
- file_put_contents()