1

我知道只有 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

4

2 回答 2

0

刚刚将变量作为参数发送:

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);\
};
于 2013-09-10T01:50:21.703 回答
0
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);
于 2013-09-10T01:51:00.503 回答