2013-07-29 2 views
1

mysqli_fetch_object을 통해 객체를 생성하는 클래스 '이벤트'가 있습니다. __construct() 함수가 실행 중이고 개체 변수가 설정되어 있지만 __construct() 함수 내에서 설정되지 않았습니다.__construct()의 변수가 mysqli_fetch_object에 의해 호출 될 때

나는 개체를 만들려면 다음 라인을 사용하고 있습니다 :

$events[$x] = $result->fetch_object("Event") 

을 나는 그것이 변수를 메아리 $events[$x]->eventPlaces();를 호출하여 다음과 같은 기능을 실행합니다.

public function eventPlaces() 
{ 
    echo $this->capacity; 
} 

그러나 구조 기능에서 동일한 코드를 사용하면 아무 것도 울리지 않습니다. 나는 가난이 설명 경우

public function __construct() 
{ 
    echo $capacity; 
    echo $this->capacity; 
} 

사과, 난 그냥 코딩에 있는데 그때 알려 주시기 놓친 경우 OO PHP는 나에게 새로운 기능입니다.

+0

는 $ this-> 용량 값이 설정되는입니까? – Maximus2012

+1

'$ this-> capacity'는 어디에서 설정합니까? –

+0

진실하게 나는 정직하게 모른다. 나는 그것을 __construct() 괄호 안에 작성하고 함수 내에 $ this-> capacity = $ capacity를 가지고있었습니다. 그러나 $ this-> capacity 또는 $ capacity 중 어느 것도 __construct() 함수 내에서 값을 가지지 않는다는 것을 깨달았습니다. 나는 그들을 제거했고 어떻게 든 $ 수용량은 아직도 설정되고있다. db에 'capacity'컬럼이 있으므로 $ capacity 변수를 fetch_object()의 일부로 설정한다고 가정합니다. – N1AK

답변

0

나는 당신이 당신의 클래스는 다음과 같이 할 생각 :

class Event{ 
    protected $capacity; 
    public __construct($capacity){ 
     $this->capacity = $capacity; 
    } 

    public function eventPlaces(){ 
     return $this->capacity; 
    } 
} 

그런 다음이 작업을 수행 할 것입니다 : 생성자를 호출하기 전에

$events[$x] = $result->fetch_object("Event", array(12)); 
echo $events[$x]->eventPlaces(); 
+0

감사합니다. Ryan. 당신이 거기에 두는 모든 것이 의미가 있습니다. 그것은 기본적으로 내가 원래 가지고 있었고 여기에서하는 것처럼 객체를 만들면 잘 작동하지만 fetch_object()를 통해 객체를 만들면 __construct가 다르게 동작하는 것처럼 보입니다. – N1AK

+0

당신은'mysqli_fetch_object()'를 의미합니까? –

+0

네, 적어도 생각합니다 : $ result-> fetch_object ("Event") – N1AK

관련 문제