나는 이것을 코드에서 발견했는데, 그것은 무엇을 의미하며, 정상적인 $ dir 변수와의 차이점은 무엇인가?{}는 무엇을 의미합니까?
global ${$dir};
$this->{$dir} = new $class();
나는 이것을 코드에서 발견했는데, 그것은 무엇을 의미하며, 정상적인 $ dir 변수와의 차이점은 무엇인가?{}는 무엇을 의미합니까?
global ${$dir};
$this->{$dir} = new $class();
복잡한 곱슬 구문이라고합니다.
문자열 표현으로 스칼라 변수, 배열 요소 또는 객체 속성
이 구문을 통해 포함 할 수있다. 표현식을 문자열 외부에 나타나는 것과 같은 방식으로 작성하고 을 {및}로 묶습니다. {는 이스케이프 할 수 없기 때문에이 구문은 이 $가 {다음에 오는 경우에만 인식됩니다. {\ $ ~ 을 사용하여 리터럴 {$.
상세 정보 :
http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing.complex
그것은 변수 $dir
의 값을 복용하고 그 이름을 가진 변수를 찾는 것입니다.
따라서 $dir = 'foo';
인 경우 ${$dir}
은 $foo
과 같습니다.
마찬가지로, $dir = 'foo';
인 경우 $this->{$dir}
은 $this->foo
과 동일합니다.
http://www.php.net/manual/en/language.variables.variable.php
그들은 변수 변수의 이름을 포장하는 데 사용됩니다.
동적으로 생성 된 변수입니다. 예 :
$app = new App();
$app->someMethod('MyDB');
// global
$config = array('user' => 'mark', 'pass' => '*****');
class App {
// MyDB instance
protected $config;
public function someMethod($class) {
$dir = 'config';
// $config = array('user' => 'mark', 'pass' => '*****')
global ${$dir};
// not static variable !!!
$this->{$dir} = new $class();
}
}
class MyDB {
// body
}
이것은 동적 이름입니다. 기타 http://stackoverflow.com/questions/9257505/dynamic-variable-names-php –