繁体   English   中英

在php 5.2中使用匿名函数

[英]Using Anonymous functions in php 5.2

我知道匿名函数仅在php5.3及更高版本中受支持。

但是由于一些困难的情况,我不得不使用下面的php 5.2中的代码

有人可以帮我将其转换为在PHP 5.2中工作吗

================================================== ==

       $fn = function($points) use ($pdf) {
        $op = 'f';
        $h = $pdf->h;
        $k = $pdf->k;
       $points_string = '';
       for($i=0; $i < 8; $i+=2){
       $points_string .= sprintf('%.2F %.2F', $points[$i]*$k,($h-$points[$i+1])*$k);
            $points_string .= $i ? ' l ' : ' m ';
       }
       $pdf->_out($points_string . $op);
    };

================================================== ==

完整代码可在以下位置获得:

http://barcode-coder.com/download/php-barcode-2.0.3.zip

我现在已经尝试使用create_function几个小时,但是可以使它正常工作。

请帮助我使它适应php5.2

还有如何复制php5.2中使用的功能

即如何将像$ pdf这样的变量传递给create_function

刚发送变量作为参数:

function fn($points, $pdf) {
        $op = 'f';
        $h = $pdf->h;
        $k = $pdf->k;
       $points_string = '';
       for($i=0; $i < 8; $i+=2){
       $points_string .= sprintf('%.2F %.2F', $points[$i]*$k,($h-$points[$i+1])*$k);
            $points_string .= $i ? ' l ' : ' m ';
       }
       $pdf->_out($points_string . $op);\
};
function whatever($points, $pdf) {
       $op = 'f';
       $h = $pdf->h;
       $k = $pdf->k;
       $points_string = '';
       for($i=0; $i < 8; $i+=2){
       $points_string .= sprintf('%.2F %.2F', $points[$i]*$k,($h-$points[$i+1])*$k);
            $points_string .= $i ? ' l ' : ' m ';
       }
       $pdf->_out($points_string . $op);
};

并这样称呼:

// your code
$pdf = new PdfLibraryThing();
whatever(array('thing'=>'foo','what'=>'stuff'), $pdf);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM