PHP 변수 이름 및 문자 대체
PHP에서는 요청 필드나 쿠키를 마침표/점(. ) 이름으로. 그러나 PHP는 자동으로 이러한 점을 밑줄(_)로 바꿉니다. 이 동작은 변수 이름 연결을 위해 PHP에서 점을 사용하기 때문에 발생합니다.
설명
PHP 문서에 따르면 점 문자(.)는 변수 이름에 허용되지 않습니다. 이는 아래 PHP 코드 예제에 표시된 것처럼 변수를 연결할 때 예기치 않은 동작이 발생할 수 있습니다.
$varname.ext; /* invalid variable name */
위 예제에서 PHP는 오른쪽(ext)을 문자열로 해석합니다. 이를 방지하기 위해 PHP는 들어오는 변수 이름의 점을 밑줄로 바꿉니다.
결과
이 대체 동작은 GET 및 POST 매개변수뿐만 아니라 쿠키에도 영향을 미칩니다. 예를 들어, 이름이 "x.y"인 쿠키가 설정되면 PHP는 내부 표현에서 해당 쿠키를 자동으로 "x_y"로 변경합니다.
솔루션
그동안 PHP의 점에서 밑줄로의 교체를 방지하는 것은 불가능합니다. 점으로 원래 변수 이름을 검색하는 해결 방법이 있습니다. 한 가지 해결책은 dawnerd의 의견에서 제안한 대로 str_replace() 함수를 사용하여 변수를 읽은 후 밑줄을 다시 점으로 바꾸는 것입니다.
위 내용은 PHP는 GET, POST 및 쿠키의 변수 이름에서 마침표를 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!