요약
이전 장에서 언급한 전역변수는 함수 내부에서 참조할 수 없으나, 슈퍼 전역변수는 참조할 수 있다
슈퍼 전역 변수는 PHP 4.1.0 이후에 활성화됩니다. 이는 PHP 시스템과 함께 제공되는 변수이며 스크립트의 전체 범위에서 사용할 수 있습니다.
1. PHP 슈퍼 전역 변수
PHP에는 여러 슈퍼 전역 변수(superglobals)가 사전 정의되어 있습니다. 스크립트 범위 전체에 걸쳐. 특별한 지시 없이 함수와 클래스에서 사용할 수 있습니다.
PHP 슈퍼 전역 변수 목록:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
이번 장에서는 일반적으로 사용되는 몇 가지 슈퍼 전역 변수에 대해 설명하고, 다음 몇 장에서는 나머지 변수를 소개하겠습니다.
2. PHP $GLOBALS
$GLOBALS는 PHP의 슈퍼 전역 변수 그룹으로, 모든 기능을 PHP 스크립트 모든 도메인에서 접근이 가능합니다.
$GLOBALS는 모든 변수를 포함하는 전역 결합 배열입니다. 변수의 이름은 배열의 키입니다.
다음 예에서는 슈퍼 전역 변수 $GLOBALS를 사용하는 방법을 소개합니다
코드는 다음과 같습니다
<?php //定义两个全局变量,函数内部不可以访问 $x = 75; $y = 25; //定义函数 function addition() { //将全局变量变为超级全局变量,这样在函数内部就可以正常访问了 $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } //调用函数 addition(); //输出函数内部定义的全局变量 echo $z; ?>
참고: 위 예에서 z는 슈퍼 전역 변수입니다. $GLOBALS 배열의 변수는
함수 외부에서도 액세스할 수 있습니다. PHP $_SERVER
$_SERVER는 ), 경로 등의 헤더 정보와 스크립트 위치 등의 정보 배열이 포함된 파일입니다. 이 배열의 항목은 웹 서버에 의해 생성됩니다. 모든 서버가 모든 항목을 제공한다는 보장은 없습니다. 서버는 일부 항목을 무시하거나 여기에 나열되지 않은 항목을 제공할 수 있습니다.
다음 예는 $_SERVER의 요소를 사용하는 방법을 보여줍니다.
예제 코드는 다음과 같습니다.
<?php //输出当前脚步的文件名 echo "<h3>输出当前脚步的文件名</h3>"; echo $_SERVER['PHP_SELF']; echo "<hr/>"; //当前脚步所在服务器的主机名 echo "<h3>当前脚步所在服务器的主机名</h3>"; echo $_SERVER['SERVER_NAME']; echo "<hr/>"; //当前请求头中 Host echo "<h3>当前请求头中 Host</h3>"; echo $_SERVER['HTTP_HOST']; echo "<hr/>"; //引导用户代理到当前页的前一页的地址(如果存在) echo "<h3>引导用户代理到当前页的前一页的地址(如果存在)</h3>"; echo $_SERVER['HTTP_REFERER']; echo "<hr/>"; //用来检查浏览页面的访问者在用什么操作系统 echo "<h3>用来检查浏览页面的访问者在用什么操作系统</h3>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<hr/>"; //包含当前脚本的路径 echo "<h3>包含当前脚本的路径</h3>"; echo $_SERVER['SCRIPT_NAME']; ?>
$_SERVER 변수의 더 중요한 요소는 다음과 같습니다. 아래 표:
4. PHP $_GET
PHP $_GET이 널리 사용됩니다. 양식 데이터 수집 시 HTML 양식 태그에 "method="get" 속성을 지정합니다.
$_GET는 URL로 전송된 데이터도 수집할 수 있습니다.
다음을 포함하는 하이퍼링크가 있다고 가정합니다. 매개변수 HTML 페이지:
<html> <body> <!--创建个连接,连接到12_7.php,并且传过去两个值--> <a href="test.php?subject=PHP&web=php.cn">点击,利用GET方式传值</a> </body> </html>
사용자가 "클릭, GET 메소드를 사용하여 값 전달" 링크를 클릭하면 "subject" 및 "web" 매개변수가 "test.php"로 전송됩니다. "test.php" 파일 사용
에서 $_GET 변수 사용
다음 예에서는 "test.php" 파일의 코드를 보여줍니다.<html> <body> <!-- 接收12_6.php传来的值 --> <?php echo "Study " . $_GET['subject'] . " at " . $_GET['web']; ?> </body> </html><🎜 >
5. PHP $_POST
$_POST는 다음과 같습니다. $_GET 은 양식 데이터를 수집하는 데 사용되며 HTML 양식 태그에 "method="post"라는 속성을 지정합니다.
다음 예에서는 입력 필드(입력)와 제출 버튼( submit) ). 사용자가 "제출" 버튼을 클릭하여 양식 데이터를 제출하면 양식 데이터가 <form> 태그의 작업 속성에 지정된 스크립트 파일로 전송됩니다. 다른 PHP 파일을 사용하여 데이터를 처리합니다. 그런 다음 슈퍼 전역 변수 $_POST를 사용하여
<🎜 형식으로 입력 필드 데이터를 수집할 수 있습니다. >예제 코드는 다음과 같습니다.<html> <body> <!-- 定义一个表单,提交一个值至当前页面 --> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <!-- 利用$_POST,输出传来的值 --> <?php $name = $_POST['fname']; echo $name; ?> </body> </html>
참고: 이 제출은 현재 페이지에 제출되므로 페이지가 로드되면 변수 fname이 정의되지 않은 것으로 표시됩니다. 사라집니다
6. PHP $_REQUEST
PHP $_REQUEST는 HTML을 수집하는 데 사용됩니다. 양식으로 제출된 데이터는 POST 및 GET 제출 방법을 통해 수집할 수 있습니다. 다음 예는 입력 필드(입력)와 제출 버튼(제출). "제출" 버튼을 클릭하여 양식 데이터를 제출하면 <form> 태그의 작업 속성에 지정된 스크립트 파일로 전송됩니다. 원하는 경우 이 데이터를 처리하려면 지정된 스크립트 파일 이름을 수정하면 됩니다. 그런 다음 슈퍼 전역 변수 $_REQUEST를 사용하여 다음 형식의 입력 필드 데이터를 수집할 수 있습니다.코드는 다음과 같습니다.
<html> <body> <!-- 定义一个表单,提交一个值至当前页面 --> <form method="post" action=""> Name: <input type="text" name="fname"> <input type="submit"> </form> <!-- 利用$__REQUEST,输出传来的值 --> <?php $name = $_REQUEST['fname']; echo $name; ?> </body> </html>
참고: fname이 정의되지 않은 이유는 위의 $_POST와 동일합니다.
학습 경험:
일부 슈퍼 전역 변수를 모두 기억할 필요는 없습니다. 필요할 때 매뉴얼을 확인하세요.
$_GET, $_POST 및 $_POST의 차이점 $_REQUEST에 대해서는 다음 장에서 자세히 소개하겠습니다