개요
PHP의 변수는 달러 기호와 변수 이름으로 표시됩니다.
변수 이름은 대소문자를 구분합니다.
유효한 변수 이름은 문자 또는 밑줄로 시작하고 그 뒤에 문자, 숫자 또는 밑줄이 옵니다.
$this는 값을 할당할 수 없는 특수 변수입니다.
변수는 기본적으로 항상 값으로 할당됩니다. 참조 할당이 필요한 경우 &
을 사용하세요.
참조로 명명된 변수만 할당 가능
<code>$foo = 25; $bar = &$foo; // 合法的赋值 $bar = &(24 * 7); // 非法; 引用没有名字的表达式 </code>
PHP에서는 변수를 초기화할 필요가 없지만 변수를 초기화하는 것은 좋은 습관입니다. 초기화되지 않은 변수는 해당 유형에 대한 기본값을 가집니다. 부울 변수의 기본값은 FALSE이고, 정수 및 부동 소수점 변수의 기본값은 0이며, 문자열 변수(예: echo에 사용되는 변수)의 기본값은 빈 문자열입니다. 배열 변수의 기본값은 빈 배열입니다.
사전 정의된 변수
<code>超全局变量 — 超全局变量是在全部作用域中始终可用的内置变量 $GLOBALS — 引用全局作用域中可用的全部变量 $_SERVER — 服务器和执行环境信息 $_GET — HTTP GET 变量 $_POST — HTTP POST 变量 $_FILES — HTTP 文件上传变量 $_REQUEST — HTTP Request 变量 $_SESSION — Session 变量 $_ENV — 环境变量 $_COOKIE — HTTP Cookies $php_errormsg — 前一个错误信息 $HTTP_RAW_POST_DATA — 原生POST数据 $http_response_header — HTTP 响应头 $argc — 传递给脚本的参数数目 $argv — 传递给脚本的参数数组 </code>
PHP에서 사전 정의된 변수 중 다수는 "슈퍼글로벌"입니다. 즉, 스크립트의 전체 범위에서 사용할 수 있습니다. 전역 $variable;을 실행하지 않고도 함수나 메서드 내에서 액세스할 수 있습니다.
변수 범위
전역 변수는 함수에서 자동으로 유효하지 않습니다.
<code><?php $a = 1; /* global scope */ function Test() { echo $a; /* reference to local scope variable */ } Test(); ?> </code>
PHP의 전역 변수는 함수에서 사용할 때 global
<code><?php $a = 1; $b = 2; function Sum() { global $a, $b; $b = $a + $b; } Sum(); echo $b; ?> </code>전역 범위의 변수에 액세스하는 두 번째 방법은 특별한 PHP 사용자 정의
배열$GLOBALS
<code><?php $a = 1; $b = 2; function Sum() { $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b']; } Sum(); echo $b; ?> </code>
<code><?php function test() { static $a = 0; echo $a; $a++; } for ($i = 0; $i < 10; $i++) { test(); } // 0123456789 ?> </code>
<code>$Bar = "a"; $Foo = "Bar"; $World = "Foo"; $Hello = "World"; $a = "Hello"; $a; //Returns Hello $$a; //Returns World $$$a; //Returns Foo $$$$a; //Returns Bar $$$$$a; //Returns a </code>