2014-02-24 2 views
0

변수 사용

패턴

패턴 PHP 매뉴얼에 언급 된 바와 같이. 물결표 확장 또는 매개 변수 대체가 수행되지 않습니다.

변수에 경로 이름이있는 파일을 찾으려고 시도했지만 작동하지 않았습니다.

로더 파일 (프로그램의 주 기능)은 로더 파일이 작업중인 현재 클래스 파일의 동일한 디렉토리에있는 파일을 거의 포함하지 않아야합니다. 그래서 아래의 작업을 로더 파일에서 시도해 보았습니다.

작동하지만 다만 좋은 작업인지 또는 내가 할 수있는 일이 있는지 알고 싶습니다.

답변

1

모든 클래스가 하나의 디렉토리에 있다면, 현재 스크립트를 기준으로 하드 코드를 작성하면 리플렉션 클래스가 필요하지 않습니다. 예를 들어, 현재 스크립트는 /var/www/foo에 있으며 클래스는 수행 /var/www/classes에 있습니다

$include_file_name = glob(__DIR__ . '/../classes' . '*.inc'); 

그 날 꽤 적절한 것 같은 클래스는 당신에게 그러나, 반사판을 사용하여 여러 디렉토리에서 올 수 그러나 경우 대신이 같은 chdir() 일의 glob() 문자열로 $fdir을 추가 할 수 있지만, 물론 그건 그냥 마이크로 최적화의 수 :

$include_file_name = glob($fdir ."/*.inc"); 
+0

감사 마이크. 모든 클래스 파일은 다른 디렉토리에 있으며 이유가 있습니다. glob 함수에서 변수를 사용했는데 작동하지 않았고 glob 함수가 변수 값 대체를 수행하지 않는다고 생각합니다 – user2959149

+0

@ user2959149 작은 따옴표로 묶었습니까? PHP의 문자열은 문자열입니다. 그것이 어떻게 만들어 졌는지는 중요하지 않습니다. 올바른 문자열을 지정하면 작동합니다. – Mike

+0

감사합니다. 마이크. glob에서 $ fdir을 시도했는데 작동합니다. 슬래시가 빠졌어요. – user2959149