php闭包函数(匿名函数)
来源:互联网 发布:java 网络通信 编辑:程序博客网 时间:2024/05/04 22:15
说明:
匿名函数因为没有名字,如果要使用它,需要将其返回给一个变量
声明:
$fun = function(){
//逻辑
};//带结束符
简单使用:
function test($id){
$fun = function($id){
return $id * $id;
}
return $fun($id);
}
实用场景:
封装一个方法,会带出重复实用的逻辑,此逻辑在其他地方基本不会使用,那就放到你封装的方法中去;
例举:
csv导出,支持700列数据(需要一个闭包进行封装)
function export_csv( $fileName, $headArr, $data, $filenum ) {include APP_PATH . "../Public/plugin/excel/PHPExcel.php";//对数据进行检验if ( empty( $data ) || !is_array( $data ) ) {echo '导出的数据为空!';die();}//检查文件名if ( empty( $fileName ) ) {echo '文件名不能为空!';exit;}//闭包封装/** * @uses 闭包封装:获取A-Z的合法输出 * @author jhl * @param int $headkey * @return string */$get_a_z_result = function($headkey){//设置表头$key = 65;//$key = 65;ord为大写的 A$step = 26;//到25个阶梯就进行更新$firstkey$num = floor($headkey/$step);$firstkey = chr($key + $num - 1);$i = chr($key + $headkey % $step);if($headkey <= 25){$result = chr($key + $headkey);}else{$result = $firstkey.$i;}return $result;};$date = date( "Y_m_d", time() );$fileName .= "_{$date}.xls";//创建PHPExcel对象,注意,不能少了\$objPHPExcel = new \PHPExcel();$objProps = $objPHPExcel->getProperties();//设置表头foreach ( $headArr as $headkey=>$v ) {// $colum = get_result($headkey);//闭包$colum = $get_a_z_result($headkey);$objPHPExcel->setActiveSheetIndex( 0 )->setCellValue( $colum . '1', $v );/* 设置宽度 */$objActSheet = $objPHPExcel->getActiveSheet();$objPHPExcel->getActiveSheet()->getColumnDimension( $colum )->setWidth( 22 );$key += 1;}$objPHPExcel->getActiveSheet( 0 )->setTitle( $fileName );//合并单元格if ( $filenum ) {$spnum = ord( "B" );for ( $i = 0; $i < $filenum; $i++ ) {$j = chr( $spnum );$topname = $j;$spnum++;}$objPHPExcel->getActiveSheet( 0 )->mergeCells( 'B1:' . $topname . '1' );}$column = 2;foreach ( $data as $key => $rows ) { //行写入foreach ( $rows as $keyName => $value ) {// 列写入//闭包// $j = get_result($keyName);$j = $get_a_z_result($keyName);$objActSheet->setCellValue( $j . $column, $value );}$column++;}$fileName = iconv( "utf-8", "gbk", $fileName );//重命名表// $objPHPExcel->getActiveSheet()->setTitle('test');//设置活动单指数到第一个表,所以Excel打开这是第一个表$objPHPExcel->setActiveSheetIndex( 0 );header( 'Content-Type: application/vnd.ms-excel' );header( "Content-Disposition: attachment;filename=\"$fileName\"" );header( 'Cache-Control: max-age=0' );$objWriter = \PHPExcel_IOFactory::createWriter( $objPHPExcel, 'Excel5' );$objWriter->save( 'php://output' );exit;}
0 0
- php闭包函数(匿名函数)
- PHP匿名函数(闭包函数)
- PHP匿名函数(闭包函数)
- php 闭包, 匿名函数
- php 函数【匿名函数、闭包】
- php 闭包函数(匿名函数)的应用
- PHP匿名函数 闭包简单例子
- PHP匿名函数及闭包
- PHP匿名和闭包函数
- PHP匿名函数及闭包
- php闭包和匿名函数
- php中的匿名函数和闭包
- PHP匿名函数、闭包、function use
- php 闭包与匿名函数
- php中的匿名函数和闭包
- 匿名函数(闭包)
- php的闭包(Closure)也就是匿名函数。
- php 闭包(匿名)函数和缓存
- POJ-2018 Best Cow Fences(二分加DP)
- 2、Add Two Numbers
- Android活动的四种启动模式--standard、singleTop、singleTask、singleInstance
- 在php环境中使用ueditor富文本编辑器步骤详解
- read与sys_read的区别你真的理解了么?
- php闭包函数(匿名函数)
- 欢迎使用CSDN-markdown编辑器
- Web MVC模式实现
- ocp 053 exam c 1-30
- 【php】Array
- 从这里开始
- Java 中使用 SAX 解析 XML 文档
- JavaScript语法基础
- Android中.apk文件的编译流程