2011-09-20 4 views
0

나는 이것이 긴 총일 수도 있지만, 이것이 가능할 것으로 기대하고있다. 이것은 정말로 내가 개발하고있는 프로젝트의 걸림돌은 아니지만 (정말로 도움이 될 수는 있지만) 나는 호기심이 많다.가장 최근의 클래스 선언 이름 가져 오기?

가장 최근에 선언 된 클래스의 이름을 가져오고 싶습니다. 기본적으로, 특정 (모든 클래스가 아닌) 클래스의 선언이 포함 된 특정 파일 다음에 추가해야하는 코드가 있습니다. 이 코드는 클래스가 시작되는 것을 제외하고는 반복됩니다.

나는 get_declared_classes()을 시도했지만 배열은 알파벳 순으로 정렬되며 클래스가 선언 된 순서가 아닙니다. 난 그냥 include를 사용할 수 있다면 유지하는이 코드 조각을 추가하는 동안

class MyClass{ 

} 

//Repeating code: 

if(isset($_REQUEST['fxn'])){ 

    $class = new MyClass(); //I am hoping to make the class name dynamic, according to the most recent declared class... 

    //More repeating codes here... 
} 

은 (그것은 개발 과정과 미래에 많은 시간을 절약 할 수 : 여기

내가 달성하기 위해 노력하고있는 무슨의 샘플 코드 그것은 필요한 곳에 따라서 내 질문)

+1

이것은 매우 이상한 일입니다. 나는 왜 당신이 이것을 원할 지 상상할 수 없다. 어떤 변수를 기반으로 클래스 정의를 포함하는 파일을 동적으로로드하는 경우 * 어떤 종류의 합리적인 이름 지정 체계를 사용하는 경우 파일 이름을 기준으로 클래스 이름을 알아야합니다 (반대의 경우도 마찬가지 임). – meagar

+0

그래, 나도 알아. 나는 이미 내 특정 문제 (steveo255도 게시했습니다 ...)에 대한 해결책을 가졌지 만, 제 질문에 언급했듯이이 질문은 무엇이 가능한지에 대한 호기심을 불러 일으키고 있습니다. 감사. (불행하게도, 내가 작업하고있는 것에는 합리적인 명명 체계가 없다. 결함이 있지만, 시작하기 전에 그렇게되어서는 안된다.) –

답변

1

아마도 get_declared_classes에 의해 반환 된 마지막 요소를 가져올 수 있지만이 작업을 수행하려고하면 무언가 끔찍하게 잘못되었습니다. 아마도 당신은 당신의 목표를 달성하기위한 다른 방법에 대한 더 많은 관점을 위해 당신의 상황을 더 잘 설명 할 수있을 것입니다.

+0

당신 말이 맞아요. 나는'get_declared_classes'가 시간 순서가 아닌 알파벳순으로 정렬된다는 잘못된 생각을했습니다. 감사! 부수적으로, 나는 이미 PEAR 스타일의 명명 규칙을 사용하여 문제를 해결했다. 더 이상이 문제를 해결할 필요가 없습니다. 그러나 문제가 제기되면 해결할 때 답변을 수락합니다. :) –

1

이 당신이 찾고있는 정확하게되지 않을 수도 있습니다,하지만 작동 :..

class MyClass {} 
$class_name = 'MyClass'; 

//Repeating code: 

if(isset($_REQUEST['fxn'], $class_name)) { 
    $class = new $class_name(); 

    //More repeating codes here... 
} 

때 요 당신이 사용하고자하는 클래스를 정의하고, 또한 클래스의 이름을 가진 변수를 정의하십시오.

+0

This 사실 내가 현재 사용하고있는 것입니다. :) –

관련 문제