PHP 개발 기본 튜토리얼 ...LOGIN

PHP 개발 기본 튜토리얼 슈퍼 전역 변수

요약

이전 장에서 언급한 전역변수는 함수 내부에서 참조할 수 없으나, 슈퍼 전역변수는 참조할 수 있다

슈퍼 전역 변수는 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 변수의 더 중요한 요소는 다음과 같습니다. 아래 표:

16.png


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에 대해서는 다음 장에서 자세히 소개하겠습니다

다음 섹션

<?php //定义两个全局变量,函数内部不可以访问 $x = 75; $y = 25; //定义函数 function addition() { //将全局变量变为超级全局变量,这样在函数内部就可以正常访问了 $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } //调用函数 addition(); //输出函数内部定义的全局变量 echo $z; ?>
코스웨어