5
어떻게하면 런타임에 평가되는 PHP 파일의 위치를 가져올 수 있습니까? 나는 마법 상수 __DIR__
과 비슷한 것을 찾고 있지만, 런타임에는 평가판 바인딩으로 평가됩니다. self
및 static
와 비슷한 차이는 :PHP __DIR__ 평가 된 런타임 (후기 바인딩)?
__DIR__ ~ self
??? ~ static
내 목표는 각 상속인 클래스에 대해 각각 평가 될 것이다 __DIR__
를 사용하여 추상 클래스의 메서드를 정의한다. 예 :
abstract class Parent {
protected function getDir() {
// return __DIR__; // does not work
return <<I need this>>; //
}
}
class Heir extends Parent {
public function doSomething() {
$heirDirectory = $this->getDir();
doStuff($heirDirectory);
}
}
분명히이 문제는 경우에만 Parent
및 Heir
다른 디렉토리에 발생합니다. 이 점을 고려하십시오. 또한, 다양한 후계자 수업에 또 다시 getDir
을 정의하는 것은하고 옵션을하지 않는 것 우리가 상속을 가지고, 그 이유는
이것은 멋지다. 다른 것은 무엇입니까? 더 깔끔한 디자인이 좋습니다. –
ReflectionObject를 사용할 수도 있습니다 : 'return dirname (new \ ReflectionObject ($ this)) -> getFileName()); –