php闭包中如何通过use声明实现变量作用域的实例解析?
- 内容介绍
- 文章标签
- 相关推荐
本文共计790个文字,预计阅读时间需要4分钟。
原文示例:php原文内容:本文字例讲述了PHP闭包中使用use声明变量的作用域。
分享给家长供参考,具体如下:phpfunction getClosure($i) { $i=$i.'-'.date('H:i:s'); return function ($param) use ($i) { echo --- param: $param ---\n; };}
本文实例讲述了php闭包中使用use声明变量的作用域。分享给大家供大家参考,具体如下:
<?php function getClosure($i) { $i = $i.'-'.date('H:i:s'); return function ($param) use ($i) { echo "--- param: $param ---\n"; echo "--- i: $i ---\n"; }; } $c = getClosure(123); $i = 456; $c('test'); sleep(3); $c2 = getClosure(123); $c2('test'); $c('test'); /* output: --- param: test --- --- i: 123-21:36:52 --- --- param: test --- --- i: 123-21:36:55 --- --- param: test --- --- i: 123-21:36:52 --- */
如上,闭包中使用use声明的变量来自于生成闭包实例时所在作用域内的同名变量,而不是来自于运行闭包时所在作用域内的同名变量。
本文共计790个文字,预计阅读时间需要4分钟。
原文示例:php原文内容:本文字例讲述了PHP闭包中使用use声明变量的作用域。
分享给家长供参考,具体如下:phpfunction getClosure($i) { $i=$i.'-'.date('H:i:s'); return function ($param) use ($i) { echo --- param: $param ---\n; };}
本文实例讲述了php闭包中使用use声明变量的作用域。分享给大家供大家参考,具体如下:
<?php function getClosure($i) { $i = $i.'-'.date('H:i:s'); return function ($param) use ($i) { echo "--- param: $param ---\n"; echo "--- i: $i ---\n"; }; } $c = getClosure(123); $i = 456; $c('test'); sleep(3); $c2 = getClosure(123); $c2('test'); $c('test'); /* output: --- param: test --- --- i: 123-21:36:52 --- --- param: test --- --- i: 123-21:36:55 --- --- param: test --- --- i: 123-21:36:52 --- */
如上,闭包中使用use声明的变量来自于生成闭包实例时所在作用域内的同名变量,而不是来自于运行闭包时所在作用域内的同名变量。

