2012-07-07 2 views
1

그래서 같은 그것의 변수와 config.php 파일 ...다른 파일의 클래스 파일에 변수 액세스

config.php를있는 경우 :

$cnf['dbhost'] = "0.0.0.0"; 
$cnf['dbuser'] = "mysqluser"; 
$cnf['dbpass'] = "mysqlpass"; 

어떻게을 그때 나는 ... 같은 다른 파일에있는 클래스에서 이러한 변수에 액세스

INC/db.class.php :

class db() { 

    function connect() { 
    mysql_connect($cnf['dbhost'], $cnf['dbuser'], $cnf['dbpass']); 
    } 

} 
$db = new db(); 

그래서, 같은 다른 파일의 클래스 ...

의 index.php를 사용할 수 있습니다

<html> 
    <?php 
    include('config.php'); 
    include('inc/db.class.php'); 
    $db->connect(); 
    ?> 
</html> 

답변

2

가의 시작 부분에 include, require 또는 require_once와 설정 파일을 포함하여 db 스크립트. 내가 포함 boot.php를 사용하는 것을 선호 큰 프로젝트의 경우 :

include "../config.php"; 

class db() { 

    function connect() { 
     global $cnf; 
     mysql_connect($cnf['dbhost'], $cnf['dbuser'], $cnf['dbpass']); 
    } 

} 
$db = new db(); 

편집 : 당신은 또한 그렇지 않으면 당신은 전역 변수에 액세스 할 수 없습니다, 당신이 사용하고자하는 기능의 세계로 $cnf를 지정해야합니다 모든 PHP 파일, 그래서 내가 필요한 모든 파일에 포함시킬 필요가 없습니다. 이 작업을 수행하기 위해서는 부트를 index.php에 포함시키고 모든 정의를 처리해야합니다. 약간 느리지 만 편안합니다.

+0

방금 ​​내가 뭘 하려는지 그 편집을 보았습니다. boot.php에 config.php를 포함시킬 수있는 방법이 있습니까? 또한 각 스크립트에 config.php를 포함하지 않고 아래의 액세스 변수를 포함시켜야합니까? – Clarkey

+0

이것은 매우 구체적인 솔루션입니다. 그러나 간단한 해결책은 모든 클래스 선언, 배열 (설정, 데이터베이스 요청 등등, 심지어 init 스크립트 포함)을 부트 PHP에 포함시키고 모든 독립형 페이지에 부트를 포함시키는 것입니다. 모든 페이지가 index.php에서 생성 된 경우 (예 : index.php? page = Home ...와 같은 호출) 인덱스에 부팅 만 추가하면됩니다. 여러 개의 입력 페이지 (예 : home.php)가있는 경우 각 페이지에 부트를 포함시켜야합니다. – SinistraD

2

inc/db.class.php에는 config.php 만 포함하면됩니다. (주석에 질문 질의 응답)

편집

당신이 할 수있는 것은

include('config.php'); 
include('db.class.php'); 
include('file.php'); 

그래서 수업이 config.php에서 변수에 액세스 할 수 있습니다, 다음과 같은 init.php을 가지고있다. 그리고 이제 index.php의 경우 init.php을 포함하면 모든 클래스, 구성 등이 포함됩니다.

+0

고마워,이게 가능하다는 걸 알지만 init.php라는 클래스와 함수를 많이로드하는 파일이있다. 나는 다른 파일이 포함되기 전에 config.php를 포함 할 수 있기를 바라고, 모든 파일에 config.php를 포함하지 않고 액세스 할 수 있기를 바랬다. 클래스/파일. 가능한? – Clarkey

+0

당신의 질문을 정확하게 이해한다면, init.php는 많은 클래스와 기능을 가진 파일입니다. 따라서 config.php를 모든 개별 클래스 파일이 아닌 해당 파일에 포함 시키면 여전히 잘 작동합니다. – abhshkdz

+0

아니요, init.php는 많은 수의 include ('파일.php ')의 나머지 부분 앞에 config.php를 포함 할 수 있다면 어떻게 각 스크립트에 config.php를 포함시키지 않고 변수에 액세스 할 수 있습니까? – Clarkey

관련 문제