2014-07-09 2 views
0

PHP를 던지면서 치명적인 오류를 던지는 다른 클래스에 객체를 속성으로 저장하려고합니다. 내 코드의 간체 버전 :PHP : 비 객체의 속성 또는 메소드를 얻으려고 시도합니다.

<?php 
    class A { 
     public function a() { 
      // do something 
     } 
    } 
    $A = new A(); 

    class B { 
     private $A; 
     public function __constructor($A) { 
      $this->A = $A; 
     } 
     private function b() { 
      if($this->A->a()) { // This line is referred by PHP 
       // do something 
      } 
     } 
    } 

    $B = new B($A); 
+0

어떤주의 사항과 치명적인 오류가 발생합니까? 클래스 B의 메서드 b()를 호출 할 수 없습니다. 따라서 해당 라인에 오류가 발생하지 않아야합니다. 간단한 코드 버전을 사용한다고 가정 해보십시오. 단순화 된 버전에서 오류가 발생합니까? – Seb

+0

@Seb 문제가 해결되었습니다. –

답변

1

오타가 있습니다. __constructor__construct으로 변경하면 PHP가 코드를 올바르게 처리합니다. PHP의 생성자는 항상 __construct입니다. 자세한 내용은 the documentation을 참조하십시오.

+0

죄송합니다, 나는'construction' 대신에'constructor'을 썼음을 보았습니다 : D –

+0

:) 이것이 문제를 해결했다면, 답으로 받아 들여야합니다! –

+1

나는 알고있다. 그러나 그것은 나에게 10 분을 기다려달라고했다. 그리고 나는 그 때, 미안해해야했다. 나는 지금 대답을 받아 들였다. –

관련 문제