PHP에서 동적 변수 이름에 중괄호 사용
P粉717595985
2023-08-29 12:05:01
<p>동적 변수 이름을 사용하려고 하는데(실제로 이름이 무엇인지 잘 모르겠습니다) 다음과 같습니다. </p>
<pre class="brush:php;toolbar:false;">for($i=0; $i<=2; $i++) {
$("파일" . $i) = 파일($filelist[$i]);
}
var_dump($file0);</pre>
<p>는 <code>null</code>을 반환하는데 이는 작동하지 않는다는 것을 의미합니다. 내가 찾고 있는 구문이나 기술이 무엇인지 모르기 때문에 연구가 어렵습니다. <code>$filelist</code>는 이전에 정의되었습니다. </p>
개요
PHP에서는 변수 앞에
으아악$
만 추가하면 변수를 동적으로 만들 수 있습니다.권장하지는 않지만 다음 동작을 연결할 수도 있습니다.
으아악다음 사이에
으아악$variableName
放在{}
를 배치할 수 있지만 필수는 아닙니다.{}
사용은 변수 이름 자체가 다음과 같이 여러 값의 조합인 경우에만 강제됩니다.그러나 가독성이 더 높으므로 항상
{}
를 사용하는 것이 좋습니다.PHP5와 PHP7의 차이점
항상 사용하는 또 다른 이유
{}
는 PHP5와 PHP7이 동적 변수를 약간 다르게 처리하여 경우에 따라 다른 결과가 발생할 수 있다는 것입니다.PHP7에서는 이제 동적 변수, 속성 및 메서드가 PHP5의 혼합된 특수 사례가 아닌 왼쪽에서 오른쪽으로 엄격하게 평가됩니다. 다음 예에서는 평가 순서가 어떻게 변경되는지 보여줍니다.
상황 1:
$$foo['bar']['baz']
${$foo['bar']['baz']}
${$foo}['bar']['baz']
시나리오 2:
$foo->$bar['baz']
$foo->{$bar['baz']}
$foo->{$bar}['baz']
상황 3:
$foo->$bar['baz']()
$foo->{$bar['baz']}()
$foo->{$bar}['baz']()
상황 4:
Foo::$bar['baz']()
Foo::{$bar['baz']}()
Foo::{$bar}['baz']()
포장해 주세요
으아악{}
:작업 예시
${}
를 사용하는 것은 동적 변수를 생성하는 방법입니다. 간단한 예는 다음과 같습니다.