2011-01-16 1 views
1

이 유형의 오류를 처리 할 수 ​​있습니까? spl_autoload_register와 같은 것이지만 기능은 있습니다.정의되지 않은 함수 핸들러 호출

기본적으로, 내가 할 노력하고 무엇을 :

Foo()->bar(); 

:이 같은 존재하지 않는 기능 푸()를 호출 할 때, 그래서

class Foo { 
    public function bar() { 
    echo 1; 
    } 
} 

:

나는 클래스가 가능한 핸들러는 다음과 같은 함수 Foo()를 생성해야합니다.

function Foo() { 
    return new Foo(); 
} 
+0

흥미로운 질문을. 그런 기능을해야합니까? 특별한 이유가 있습니까? 함수를 "자동로드"하는 방법은 생각할 수 없지만 목표를 달성 할 수있는 또 다른 방법이 있을까요? – Nanne

+1

아니요, 가능하지 않습니다. 자동 로딩은 수업에만 적용됩니다. '$ foo = new Foo;를 실행하는 것만으로도 문제가되지 않습니다. $ foo-> bar();'? – netcoder

+0

이유는 적은 코드를 작성하는 것입니다. 예를 들어,이 코드가 있습니다. $ friends = new FriendsModel(); $ this-> friends = $ friends-> getUserFriends ($ userId); 다른 곳에서는 $ friends 객체를 사용하지 않으므로 다음과 같이하면 유용합니다. $ this-> friends = FriendsModel() -> getUserFriends ($ userId); FriendsModel() 함수를 만들 수 있지만 이와 같이 많은 클래스가있을 때 중복되는 것처럼 보입니다. 따라서 프로세스를 최적화하고 싶습니다. – romaonthego

답변

0

개체의 실제 인스턴스가 필요 없다면 정적 클래스를 사용하지 않는 이유는 무엇입니까?

class Foo { 
    public static function bar() { 
    echo 1; 
    } 
} 

Foo::bar(); 

그런 다음 앱에서이 작업을 수행 할 수 있습니다

$this->fiends = FriendsModel::getUserFriends($userId);