2012-08-11 8 views
0

가능한 중복에 예상치 못한 T_FUNCTION : 나는 PHP 5.2을 실행중인 서버에서이 작업을 실행하기 위해 노력하고있어
How can I use PHP closure function like function() use() on PHP 5.2 version?구문 오류 "사용"연산자

.

function add_post_type($name, $args = array()) { 
add_action('init',function() use($name, $args) { 

    // execute custom post type code here 

}); 
}; 

두 번째 줄에서 예기치 않은 T_FUNCTION 오류가 발생합니다. "사용"연산자의 원인이 의심됩니다. 누군가가 PHP 5.2에서 실행되도록이 함수를 다시 작성할 수있는 방법을 알려줄 수 있습니까?

+0

'function()'다음에 중괄호를 지정하지 않았기 때문입니다. 그러나 실제로 당신이하려고하는 것은 무엇입니까? – Hafiz

+0

@Hafiz 제 WordPress 테마에서 function.php 파일을 넣기 위해 사용자 정의 게시 유형 도우미 함수를 만들고 있습니다. CPT를 더욱 빠르고 편리하게 만듭니다. 얼마 전에 튜토리얼을 보았습니다. Te 중괄호에 관해서는, "using ($ name, $ args)"다음에 오는 함수가 변수를 사용할 수있게 만든다는 것을 알기 때문에 그 문장으로 사용합니다. 어쨌든 PHP 5.3을 사용하는 MAMP에서 정상적으로 실행됩니다. 내 생산은 5.2 –

답변

1

이 기능을 참조하십시오 : -

/* 추가 ​​포스트 유형 */

이 대답은 당신이 PHP 5.2에서 뭘 하려는지를위한 좋은 솔루션을 제공 할 것으로 보인다
function wpse54191_plugin_init() { 
add_post_type('Netherlands', array(
    'supports' => array('title', 'editor', 'thumbnail', 'comments') 
)); 
} 
add_action('init', 'wpse54191_plugin_init'); 

/* Add Post Type */ 
function add_post_type($name, $args = array()) { 
    if (!isset($name)) return; 

    $name = strtolower(str_replace(' ', '_', $name)); 
    $args = array_merge(
     array(
      'label' => 'Members ' . ucwords($name) . '', 
      'labels' => array('add_new_item' => "Add New $name"), 
      'singular_name' => $name, 
      'public' => true, 
      'supports' => array('title', 'editor', 'comments'), 
     ), 
     $args 
    ); 

    register_post_type($name, $args); 
} 
+0

입니다. 당신에게 매우 도움이됩니다. –

+0

굉장히 좋아 보이는데, 바로 시도 할 것입니다. –

0

을 : 익명 함수 변환 사용자 정의 함수에 전달합니다. 행운

Converting Code with Anonymous functions to PHP 5.2

좋은! 그리고 PHP 버전을 업그레이드하십시오 : P

+0

고마워, 그 주제를 따라 잡아야 할 것 같습니다. WHM이나 셸에 대한 액세스 권한이없는 공유 호스팅 패키지에 대해 필자는 직접 업그레이드 할 수 있다고 생각하지 않습니다. –