2014-04-03 8 views
0
내가 PHP의 객체 상속 문제에 봉착

:클래스의 하위 클래스 '

나는 두 개의 파일, baseclass.php을 가지고 subclass.php을 같은

//baseclass.php 
<?php 
echo "In baseclass.php\n"; 

class BaseClass { 
    function __construct() { 
    echo "In BaseClass constructor\n"; 
    $this->id = "NOT IMPLEMENTED"; 
    } 
} 

//subclass.php 
<?php 
require_once("PATH/baseclass.php"); 
echo "In subclass.php\n"; 

$elt = new SubClass(); 
echo $elt->id; 

class SubClass extends BaseClass { 
    function __construct() { 
    echo "In the SubClass constructor\n"; 
    parent::__constructor(); 
    } 
} 

내 예상 된 결과는 다음과 같습니다

In baseclass 
In subclass 
In BaseClass constructor 
In the SubClass constructor 
NOT IMPLEMENTED 

그러나 내가 얻는 것은

같은 결과를 요구하거나 포함하는 것을 사용하는 것입니다. BaseClass와 SubClass를 같은 파일에 넣으면 그 결과는 예상대로입니다. 이것은 PHP에서 여러분이 다른 폴더에 정의 된 클래스를 확장 할 수 없다고 믿게합니다. 이것은 이상하게 보입니다. 이 문제를 해결할 방법이 있습니까?

답변

2

당신은 클래스를 정의 먼저 필요하고이를 전화 :

class SubClass extends BaseClass { 
    function __construct() { 
    echo "In the SubClass constructor\n"; 
    parent::__constructor(); 
    } 
} 

$elt = new SubClass(); 
echo $elt->id; 
+0

이 주위에 얻을 수있는 방법이 있나요? 내 클래스 정의는 꽤 길어질 것이며 내 파일의 맨 아래에 내 논리를 갖는 팬이 아닙니다. 감사! –

+1

각 클래스를 별도의 파일로 정의하는 방법은 무엇입니까? 논리 파일에 포함 시키십시오. http://www.php.net/manual/en/language.oop5.autoload.php도 확인하십시오. – Aris

관련 문제