변수 이름은 PHP의 다른 태그와 동일한 규칙을 따릅니다. 유효한 변수 이름은 문자나 밑줄로 시작하고 그 뒤에 문자, 숫자 또는 밑줄이 옵니다. 일반 정규식에 따르면 '[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*'로 표현됩니다.
참고: $this는 값을 할당할 수 없는 특수 변수입니다.
변수는 기본적으로 항상 값으로 할당됩니다. 즉, 표현식의 값이 변수에 할당되면 원래 표현식 전체의 값이 대상 변수에 할당됩니다. 즉, 예를 들어 한 변수의 값이 다른 변수에 할당된 동안 한 변수의 값을 변경해도 다른 변수에는 영향을 미치지 않습니다. 이 유형의 할당 작업에 대해서는 표현식 장을 참조하세요.
PHP는 변수에 값을 할당하는 또 다른 방법인 참조 할당도 제공합니다. 이는 새 변수가 원래 변수를 단순히 참조(즉, "별칭" 또는 "가리키는 것")한다는 의미입니다. 새 변수를 변경하면 원래 변수에 영향을 미치며 그 반대의 경우도 마찬가지입니다.
참조 할당을 사용하려면 할당할 변수(소스 변수) 앞에 & 기호를 추가하면 됩니다.
한 가지 중요한 점은 이름이 있는 변수만 참조로 할당할 수 있다는 것입니다.
코드 복사 코드는 다음과 같습니다.
$foo = 25; $bar = &$foo; // 유효한 할당
$bar = &(24 * 7) // 이름이 없는 표현식을 참조합니다.
function test()
{
return 25;
}
$bar = &test(); // 불법
?>
PHP에서는 변수를 초기화할 필요가 없지만 좋은 습관입니다. 변수를 초기화합니다. 초기화되지 않은 변수에는 해당 유형에 대한 기본값이 있습니다. 부울 변수의 경우 FALSE, 정수 및 부동 소수점 변수의 경우 0, 문자열 변수의 경우 빈 문자열, 배열 변수의 경우 빈 배열입니다.
초기화되지 않은 변수에 대해 기본값에 의존하는 것은 동일한 변수 이름을 사용하여 한 파일을 다른 파일에 포함하는 등 특정 상황에서 문제가 될 수 있습니다. 또한 Register_globals를 활성화하는 것은 주요 보안 위험입니다. 초기화되지 않은 변수를 사용하면 E_NOTICE 오류가 발생하지만 초기화되지 않은 배열에 요소를 추가하면 발생하지 않습니다. isset() 언어 구성을 사용하여 변수가 초기화되었는지 여부를 감지할 수 있습니다.
사전 정의된 변수
PHP는 수많은 사전 정의된 변수를 제공합니다. 많은 변수가 실행 중인 서버의 버전 및 설정 등에 따라 달라지므로 자세한 문서는 제공되지 않습니다. 일부 사전 정의된 변수는 PHP가 명령줄에서 실행될 때 적용되지 않습니다.
PHP 4.1.0부터 PHP는 웹 서버(사용 가능한 경우), 런타임 환경 및 사용자 입력의 데이터를 포함하는 사전 결정된 배열 변수의 추가 세트를 제공합니다. 이러한 배열은 전역적으로 자동으로 적용된다는 점, 즉 모든 범위에서 자동으로 적용된다는 점에서 매우 특별합니다. 따라서 자동 전역 또는 슈퍼 전역이라고 불리는 경우가 많습니다. (PHP에는 사용자 정의 슈퍼 전역 변수에 대한 메커니즘이 없습니다.) 슈퍼 전역 변수는 아래에 나열되어 있지만 해당 내용과 PHP의 미리 정의된 변수 및 해당 특성에 대한 자세한 내용은 미리 정의된 변수를 참조하세요. 또한 이전에 미리 정의된 배열($HTTP_*_VARS)이 여전히 존재한다는 점도 알 수 있습니다. PHP 5.0.0부터, 긴 유형의 PHP 사전 정의 변수 배열은 Register_long_arrays 설정 옵션을 사용하여 비활성화할 수 있습니다.
변수 범위
변수의 범위는 해당 변수가 정의된 컨텍스트 범위(즉, 유효 범위)입니다. 대부분의 PHP 변수에는 단일 범위만 있습니다. 이 단일 범위 범위에는 include 및 require에 의해 도입된 파일도 포함됩니다.
PHP의 전역 변수는 C 언어와 약간 다릅니다. C 언어에서는 전역 변수가 지역 변수에 의해 재정의되지 않는 한 자동으로 함수에 적용됩니다. PHP의 지역 변수는 전역 변수에 의해 덮어쓰여지지 않으며, 사용되면 변수의 기본 초기값이 됩니다. 이로 인해 일부 문제가 발생할 수 있으며 누군가 실수로 전역 변수를 변경할 수도 있습니다. PHP의 전역 변수는 함수에서 사용될 때 전역으로 선언되어야 합니다.
정적 변수 사용
변수 범위의 또 다른 중요한 기능은 정적 변수입니다. 정적 변수는 로컬 함수 범위에만 존재하지만 프로그램 실행이 이 범위를 벗어나도 해당 값은 손실되지 않습니다.
위 내용은 프리티리듬 디어 마이 퓨처 PHP 섹션 3의 변수 소개와 프리티리듬 디어 마이 퓨처의 내용을 포함하고 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.