Выбор строки в Datatables — анонимная функция на PHP 5.2

Я использую этот Datatables пример, на моем сервере с версией PHP 5.2.

Я знаю, что нельзя использовать анонимные функции, такие как «серверный скрипт» в примере в строке 35, но мне нужно какое-то решение для этого, так как я не могу обновить свой сервер.

Это проблема:

array(
'db' => 'id',
'dt' => 'DT_RowId',
'formatter' => function( $d, $row ) {
// Technically a DOM id cannot start with an integer, so we prefix
// a string. This can also be useful if you have multiple tables
// to ensure that the id is unique with a different prefix
return 'row_'.$d;
}),

У кого-нибудь есть решение для этого function($d, $row)?

0

Решение

‘Может быть, вы можете использовать array_map:

массив_карт («функция», массив (‘db’ => ‘id’, …)),

затем определите функцию, чтобы сделать то, что вы хотите с элементом ‘formatter’, но оставив все остальные элементы как есть.

Я попытаюсь уточнить, вот предлагаемый код (я предполагаю, что только $ d является целым числом, если нет, то может быть другой распознаватель, который вы могли бы использовать вместо is_int ()):

array_map(
function($val) {$val = is_int($val) ? 'row_'.$d : $val},
array('db' => 'id', 'dt' => 'DT_RowId','formatter' => $d)
)

В зависимости от того, какую версию php вы используете, вам может потребоваться определить неанонимную функцию.

Вот рабочий пример, который должен работать в 5.2:

<?php
$d = 10;

function func($val) {
return is_int($val) ? 'row_'.$val : $val;}

print_r(array_map(
"func",
array('db' => 'id', 'dt' => 'DT_RowId','formatter' => $d)
));
?>

Это выводит:

Array ( [db] => id [dt] => DT_RowId [formatter] => row_10 )
0

Другие решения

Других решений пока нет …