개요
PHP에서는 $
변수 앞에 변수를 추가 하여 동적 변수로 만들 수 있습니다.
$$variableName = $value;
권장하지는 않지만이 동작을 연결할 수도 있습니다.
$$$$$$$$DoNotTryThisAtHomeKids = $value;
당신은 $variableName
사이 에 넣을 수는 없습니다 {}
.
${$variableName} = $value;
사용은 {}
당신의 변수의 이름과 같이 그 자체가 여러 값의 구성입니다 경우에만 필수입니다 :
${$variableNamePart1 . $variableNamePart2} = $value;
그럼에도 불구하고 {}
더 읽기 쉽기 때문에 항상 사용하는 것이 좋습니다 .
PHP5와 PHP7의 차이점
항상 사용하는 또 다른 이유 {}
는 PHP5와 PHP7이 동적 변수를 처리하는 방법이 약간 다르기 때문에 경우에 따라 결과가 달라지기 때문입니다.
PHP7에서는 동적 변수, 속성 및 메소드가 PHP5의 특수한 경우와는 반대로 왼쪽에서 오른쪽 순서로 엄격하게 평가됩니다. 아래 예는 평가 순서가 어떻게 변경되었는지 보여줍니다.
사례 1 : $$foo['bar']['baz']
- PHP5 인터페 테이션 :
${$foo['bar']['baz']}
- PHP7 인터페 테이션 :
${$foo}['bar']['baz']
사례 2 : $foo->$bar['baz']
- PHP5 인터페 테이션 :
$foo->{$bar['baz']}
- PHP7 인터페 테이션 :
$foo->{$bar}['baz']
사례 3 : $foo->$bar['baz']()
- PHP5 인터페 테이션 :
$foo->{$bar['baz']}()
- PHP7 인터페 테이션 :
$foo->{$bar}['baz']()
사례 4 : Foo::$bar['baz']()
- PHP5 인터페 테이션 :
Foo::{$bar['baz']}()
- PHP7 인터페 테이션 :
Foo::{$bar}['baz']()