2014-11-29 7 views
0

PHP 버전 5.2 인 내 서버에서이 Datatables example을 사용하고 있습니다.Datatables 행 선택 - PHP 5.2의 익명 함수

줄 35의 예제에서 'Server-side script'와 같이 익명의 함수를 사용할 수 없다는 것을 알고 있지만 서버를 업그레이드 할 수 없기 때문에 해결책이 필요합니다.

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 사용할 수 있습니다

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 버전에 따라 익명이 아닌 기능을 정의해야 할 수 있습니다.

<?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

나는이 구문 오류 받고 있어요 : 기대, 구문 오류, 예기치 T_FUNCTION :'구문 분석 오류를 여기

5.2에서 작동해야 동작하는 예제입니다 ')'in ... '을 호출합니다. 그리고 내 서버에 5.2 PHP 버전이 있으며 업그레이드 할 수 없기 때문에 익명 함수를 사용할 수 없다는 것을 이미 언급했습니다. – zppinto