2012-10-23 8 views
2

호스트 변수를 변수로 사용하는 php로 db 클래스를 만들려고합니다. 나는 막대기에 초기화 된 값을 얻을 수없고 이유는 모르겠다. 내가 그들을 공용으로 설정하면 정상에서 그들을 초기화 할 때 잘 작동하지만 생성자에서 초기화하려고하면 작동하지 않습니다.PHP 변수가 저장되지 않습니다.

class Database { 

    public $dbHost; 
    public $dbUser; 
    public $dbPass; 
    public $dbName; 

    public $db; 

    public function __construct($Host, $User, $Pass, $Name){ 
     $dbHost = $Host; 
     $dbUser = $User; 
     $dbPass = $Pass; 
     $dbName = $Name; 
     $this->dbConnect(); 
    } 

    public function dbConnect(){ 
     echo $dbPass; 
     $this->db = new mysqli($this->dbHost, $this->dbUser, $this->dbPass, $this->dbName); 

     /* check connection */ 
     if (mysqli_connect_errno()){ 
      printf("Connect failed: %s\n", mysqli_connect_error()); 
      exit(); 
     }else{ 
      //echo 'connection made'; 
     } 
    } 

답변

6

생성자에서 제대로 초기화하지 않았습니다. 시도 :

$this->dbHost = $Host; 

현재 수행중인 작업은 $ dbHost라는 로컬 변수를 초기화하는 것입니다. 범위는 생성자 함수 자체입니다.

+0

ahh 와우. 나는 지금 하하를 코딩하는 것에 지쳤다. –

2

클래스 내부의 인스턴스 변수에 액세스하려면 $this을 사용해야합니다. 예 : $this->dbHost = $Host;

2

변경이이에

public function __construct($Host, $User, $Pass, $Name){ 
     $dbHost = $Host; 
     $dbUser = $User; 
     $dbPass = $Pass; 
     $dbName = $Name; 
     $this->dbConnect(); 
    } 

:

public function __construct($Host, $User, $Pass, $Name){ 
     $this->dbHost = $Host; 
     $this->dbUser = $User; 
     $this->dbPass = $Pass; 
     $this->dbName = $Name; 
     $this->dbConnect(); 
    } 
0

this->

public function __construct($Host, $User, $Pass, $Name){ 
    $this->dbHost = $Host; 
    $this->dbUser = $User; 
    $this->dbPass = $Pass; 
    $this->dbName = $Name; 
    $this->dbConnect(); 
} 
1

사용에 대한이 시도 방법 :

public function __construct($Host, $User, $Pass, $Name){ 
     $this->dbHost = $Host; 
     $this->dbUser = $User; 
     $this->dbPass = $Pass; 
     $this->dbName = $Name; 
     $this->dbConnect(); 
    } 
관련 문제