PHP에서 동적 변수 이름과 함께 중괄호 사용
PHPPHP에서 동적 변수 이름과 함께 중괄호 사용
나는 동적 변수 이름을 사용하려고한다. (나는 그들이 실제로 무엇을 호출하는지 모르겠다.) 그러나 꽤 많이 이것을 좋아한다.
for($i=0; $i<=2; $i++) {
$("file" . $i) = file($filelist[$i]);
}
var_dump($file0);
반환 값은 작동하지 않는다고 알려주는 null입니다. 내가 찾고있는 구문이나 기술이 무엇인지 모르겠다. 연구하기가 어렵다. $ filelist는 이전에 정의되어 있습니다.
해결법
-
==============================
1.
{}로 묶으세요.
${"file" . $i} = file($filelist[$i]);
$ {}을 (를) 사용하는 것은 동적 변수를 만드는 간단한 방법입니다.
${'a' . 'b'} = 'hello there'; echo $ab; // hello there
-
==============================
2.
PHP에서는 동적 변수로 만들기 위해 변수 앞에 여분의 $를 넣을 수 있습니다.
$$variableName = $value;
권장하지는 않지만이 동작을 연결할 수도 있습니다.
$$$$$$$$DoNotTryThisAtHomeKids = $value;
당신은 {variable} 사이에 $ variableName을 넣을 수는 있지만 그렇게 할 수는 없습니다 :
${$variableName} = $value;
{} 사용은 변수 이름 자체가 여러 값으로 구성된 경우에만 필수입니다.
${$variableNamePart1 . $variableNamePart2} = $value;
그럼에도 불구하고 더 읽기 쉽기 때문에 항상 {}을 사용하는 것이 좋습니다.
{}를 항상 사용하는 또 다른 이유는 PHP5와 PHP7이 약간 다른 동적 변수 처리 방법을 사용하기 때문에 경우에 따라 결과가 달라지기 때문입니다.
PHP5에서는 PHP5의 특수한 경우와 달리 동적 변수, 속성 및 메서드가 왼쪽에서 오른쪽 순서로 엄격하게 평가됩니다. 아래 예는 평가 순서가 어떻게 변경되었는지를 보여줍니다.
-
==============================
3.
() 대신 {}을 (를) 사용해보십시오.
${"file".$i} = file($filelist[$i]);
-
==============================
4.
쿼리에서 반환 된 결과에서이 작업을 자주 수행합니다.
e.
// $MyQueryResult is an array of results from a query foreach ($MyQueryResult as $key=>$value) { ${$key}=$value; }
이제 $ MyFieldname을 사용하면됩니다. ($ echo "myFieldname"대신에 echo 문을 사용하는 것이 더 쉽습니다.) $ MyQueryResult [ 'MyFieldname']
네, 아마 게으르 겠지만, 나는 전혀 문제가 없었습니다.
-
==============================
5.
Tom이 기존 배열을 가지고 있다면 그 배열을 객체로 변환하여 다음과 같이 사용할 수 있습니다 :
$r = (object) $MyQueryResult; echo $r->key;
-
==============================
6.
나는 동적으로 생성 된 변수 값에 대한 솔루션을 가지고 있고 변수에 모든 값을 결합했습니다.
if($_SERVER['REQUEST_METHOD']=='POST'){ $r=0; for($i=1; $i<=4; $i++){ $a = $_POST['a'.$i]; $r .= $a; } echo $r; }
-
==============================
7.
나는 6 개의 동일한 배열을 가진 위치에 있었고 다른 변수에 따라 올바른 것을 선택하고 값을 할당해야했습니다. 여기에 나와있는 경우에는 $ comp_cat이 'a'이므로 'a'배열 ( "b"는 'f'배열)을 선택해야했습니다.
배열의 변수 위치 값은 닫는 중괄호 뒤에옵니다.
from https://stackoverflow.com/questions/9257505/using-braces-with-dynamic-variable-names-in-php by cc-by-sa and MIT lisence
'PHP' 카테고리의 다른 글
PHP에서 MySQL 테이블의 마지막 삽입 ID를 얻는 방법은 무엇입니까? (0) | 2018.09.03 |
---|---|
jQuery를 사용하여 AJAX 요청 콜백 (0) | 2018.09.03 |
아약스 파일 업로드에 FormData 사용 방법 (0) | 2018.09.03 |
동기화되지 않은 명령. 이 명령을 지금 실행할 수 없습니다. (0) | 2018.09.03 |
PHP 오류 메시지 "알림 : 정의되지 않은 상수 사용"은 무엇을 의미합니까? (0) | 2018.09.03 |