2014-06-08 2 views
1

부모 객체에 객체를 업 캐스트 할 수 있습니까?PHP 상한 객체

예 코드

class ClassA { 
    public function foo(){ 
    echo get_class($this); 
    } 
} 

class ClassB extends ClassA { 
    public function foo(){ 
    echo get_class($this); // prints ClassB :) 
    parent::foo();   // prints ClassB/I want ClassA :(
    } 
} 

$B = new ClassB(); 
$B->foo(); 

은 PHP에있다;

제 시나리오에서는 ClassB를 구축하고 ClassB :: Foo() 함수를 확장하여 그 동작을 확장 한 다음 부모 함수 인 ClassA :: Foo()로 제어를 처리하지만 코드가 깨졌습니다. 이제 ClassB의 객체입니다. Plz는 "코드 냄새"에 대해 저를 비난하지 않습니다. ClassA가 제어 할 수 없습니다. :-)

+0

글쎄, 왜 시도하지 않는거야? – kero

답변

1

__CLASS__Magic Constant을 사용해보세요. 현재 진행중인 상속에 관계없이 현재있는 클래스 이름을 반환합니다.

+0

실제로 개체를 부모에게 캐스팅하려고합니다. 위의 코드는 예제입니다. 고맙습니다. – igaster