2013-09-09 3 views
1

Я знаю, что анонимные функции поддерживаются только в php5.3 и выше.Использование анонимных функций в php 5.2

Но из-за некоторые трудные обстоятельства, я должен использовать этот код в 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

+1

как функция параметр. –

ответ

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); 
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);\ 
};