2014-10-25 4 views
1

아시겠지만, Codeigniter는 훌륭한 PHP 프레임 워크입니다. 저는 자체 프레임 워크를 만들려고합니다. 여기에 문제가있다. Codeifyiter의 $data 기능이 정말 마음에 들고 내 프레임 워크에서이 기능을 사용하고 싶습니다. 문제는 어떻게 작동하는지입니다.배열 키와 값을 변수로 추출하십시오.

$data['title']= 'My Name'; 
  • 은 다음 뷰에서 다음과 같이이 변수를 사용할 수 있습니다 :

    $title ; 
    
  • 어떻게

    1. 이 같은 배열을 만들 : 여기가 무슨이다 $data과 같은 변수를 만들 수 있습니까?

    +0

    사람들이 자신의 물건을 만들려고 할 때가 좋습니다!. 보기에서만 데이터 변수를 사용하고 싶습니다. – boyd

    +0

    1) "$ data functionality"LOL 2) CI가 어떻게 작동하는지 확인하십시오. 전체 소스 코드가 거기에 있습니다 ... –

    +0

    이것은 단지보기가 아닙니다 ... codeigniter에서 당신은 남성 $ data [ 'title'] = 'My name'; 네스트 라인에서 다음과 같이 사용한다 : echo $ title; 그리고 이것은 나를 혼란스럽게 만든다. – user3492977

    답변

    4

    원하는 것은 배열 키를 변수로 바꾸는 것입니다. 이렇게하려면 하나의 내장 함수가 있습니다.

    extract() - 배열

    $data['x'] = "Value"; 
    extract($data, EXTR_PREFIX_SAME, null); 
    echo $x; 
    

    에서 현재 심볼 테이블로 가져 오기 변수는 문서를 통해 이동하고 당신이 그것을 사용하는 방법을 탐구한다.

    +0

    나는이 내 친구를 알고있다 ... 문제는 여기에있다. $ data 변수를 만드는 방법은 우리가 직접 함수를 호출하지 않고이 모든 것을 수행한다. 왜냐하면 이것은 CI (codeigniter) 그것을했다. – user3492977

    +1

    @ user3492977 CI가 대신이 작업을 수행합니다. 'system \ core'Loader.php'를 살펴보고'_ci_load' 함수를 살펴보십시오. 그들이'추출물 '을 사용했다는 것을 알 수 있습니다. 프레임 워크를 작성할 때보기를로드하는 메커니즘이 필요합니다. 이 기능을 사용하는 동안이 기능을 사용하거나보기를로드하는 다른 방법을 찾는 것이 좋습니다. 건배 :) – SachinGutte

    0

    이 질문에 어려움을 겪고 계시다면 귀하의 질문이 약간 모호하며 자신의 프레임 워크를 작성하지 마십시오.

    하지만 당신이 묻는 것은 CI가 $ data의 변수에 어떻게 액세스합니까 ($ data [ 'var_name'];없이)?

    당신은 통과 그래서 경우 :

    $data = array("title" => "a page title"); 
    

    을 그냥 할 수있는보기에. 그것은 당신의 질문입니까 - 어떻게해야합니까?

    간단합니다.

    function view($data=array(),$file="your-view-file.php") { 
    extract($data); 
    include($file); 
    } 
    

    extract는 include()와 같은 범위에 있기 때문에.

    정직하게도 CI 파일을 통해이 물건을 사용하십시오.

    관련 문제