2014-04-10 3 views
0

연관 배열을 포함하는 PHP 파일이 있습니다. 편집/업데이트하기 쉽도록 한 파일에 모든 파일이 있습니다. 예 :다른 파일의 중첩 된 함수에서 한 파일의 배열 사용

$ass_first = array(  "title"=>"Title", 
          "first_name"=>"First Name", 
          "surname"=>"Surname", 
          "phone"=>"Phone Number", 
          "email"=>"Email Address", 
          "add1"=>"House Name/Number", 
          "add2"=>"Street", 
          "add3"=>"Town", 
          "add4"=>"City", 
          "add5"=>"Post Code" 
          ); 

다른 파일에는 다른 함수를 호출하는 변수가 전달되는 함수가 있습니다.

예를 들어 폼 입력을 포함하는 테이블을 만들기 위해 호출되는 함수가 있습니다. 이 함수에는 입력이 필요한지, 필요한 함수가 호출되는지 확인하는 테스트가 있습니다.

function create_table($titles, $id) { //$titles is the relevant array from lists.php, $id is the id of the containing div 

    $select = array('timescale','bus_route','train_stat'); //'select' id list 

foreach ($titles as $k=>$v) { //$k is the database/id/name $v is the description text 
    if (in_array($k,$select)){ 
     select_box($k,$v); 
    } 
    else if //input is a text area 
     text_box($k,$v); 
    } 
    else{ //input is a checkbox 
     check_box($k,$v); 
    } 
} 

} 나는 lists.php 파일에 포함 된 일부 배열을 참조 할 세 가지 '에 자리 잡고 기능'내부

.

이러한 배열을 함수 범위에 추가하는 가장 좋은 방법을 알고 싶습니다. 나는 변수 변수가 반드시 필요한 최선의 방법이 아니며 전역 변수를 선언하지도 않는다고 들었다. 나는 그것을 할 수있는 다른 방법을 생각할 수 없다!

다른 세 개의 네 스팅 된 함수가 서로 다른 배열 집합을 필요로하므로 세 개의 배열 집합이 전달되지만 한 번에 하나의 집합 만 사용되므로 함수로 변수로 전달할 수 없습니다!

+0

왜 함수로 변수를 전달합니까? 입력이 선택/텍스트/체크 박스인지 결정하는 것은 무엇입니까? –

+0

코드의 선택 섹션에 대한 업데이트를 참조하십시오. 기본적으로 입력의 이름이 'select'배열에 있으면 'select select input'함수가 호출됩니다. 하지만 $ k 및 $ v 값을 전달하는 것 외에 다른 배열에 대한 액세스가 필요합니다.이 배열은 함수로 전달되었습니다. – Giovanni

+0

@BrianAdams 할 수는 있지만 모든 배열을 하나의 개별 파일로 유지하는 것이 더 쉽습니다. 업데이트하고 추적하십시오. 다른 파일에서 이러한 배열을 참조하는 가장 좋은 방법을 찾은 직후에요. – Giovanni

답변

0

당신은 당신의 CREATE_TABLE 함수에 배열을 전달할 수 있습니다

function create_table($titles, $id, $arrays) { 
    ... 
} 
당신은 아마 위의 주석이 변수 설정 어떤 파일 말을 추가 가서 전역 변수를 사용할 수 있습니다

:

function create_table($titles, $id) { 
    //$arrays gets set in lists.php 
    global $arrays; 
    ... 
} 

또는 lists.php 파일을 다음과 같이 요구할 수 있습니다.

function create_table($titles, $id) { 
    require 'lists.php'; 
    ... 
} 
+0

나는 아직도 사람들의 문제가 세계와 어떤 관계인지 보지 않는다! 그 위치를 설정하는 것이 무엇인지 추적하는 것이 매우 쉽습니다. 배열이 여러 가지 다른 장소에서 필요하다면 그 문제를 가질 것인가? – Giovanni

관련 문제