PHP에는 9개의 슈퍼 전역 변수가 있습니다: "$GLOBALS", "$_SERVER", "$_GET", "$_POST", "$_FILES", "$_COOKIE", "$_SESSION", "$ _REQUEST", "$_ENV".
이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터
PHP에서 사전 정의된 많은 변수는 "슈퍼 전역"입니다. 즉, 해당 변수가 스크립트의 전체 범위에 속함을 의미합니다. 모두 가능합니다. global $variable;
를 실행하지 않고도 함수나 메서드 내에서 액세스할 수 있습니다.
이러한 초전역 변수는 다음과 같습니다.
$GLOBALS
$_SERVER
$_GET
$_POST
$_FILES
$_COOKIE
$_SESSION
$_REQUEST
$_ENV
PHP $_GET은 HTML 양식을 제출한 후 수집하는 데에도 사용할 수 있습니다(method="get" ) 양식 데이터.
$_GET는 URL로 전송된 데이터도 수집할 수 있습니다.
예를 들어 URL 링크에 접속합니다:
http://localhost/test_get.php?subject=PHP&web=W3school.com.cn
사용법은 다음과 같습니다:
<html> <body> <?php echo "Study " . $_GET['subject'] . " at " . $_GET['web']; ?> </body> </html>
PHP $_POST는 HTML을 제출한 후 수집하는 데 널리 사용됩니다. method="post" 양식 데이터를 사용하는 양식입니다. $_POST는 일반적으로 변수를 전달하는 데에도 사용됩니다.
아래 예는 입력 필드와 제출 버튼이 있는 양식을 보여줍니다. 사용자가 데이터를 제출하기 위해 제출 버튼을 클릭하면 양식 데이터가 ff9c23ada1bcecdd1a0fb5d5a0f18437 태그의 작업 속성에 지정된 파일로 전송됩니다. 이 예에서는 양식 데이터를 처리하기 위해 파일 자체를 지정합니다. 다른 PHP 페이지를 사용하여 양식 데이터를 처리하려면 파일 이름을 원하는 파일 이름으로 변경하세요. 그런 다음 슈퍼 전역 변수 $_POST를 사용하여 입력 필드의 값을 수집할 수 있습니다.
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_POST['fname']; echo $name; ?> </body> </html>
PHP $_REQUEST는 HTML 양식을 통해 제출된 데이터를 수집하는 데 사용됩니다.
아래 예는 입력 필드와 제출 버튼이 있는 양식을 보여줍니다. 사용자가 제출 버튼을 클릭하여 양식 데이터를 제출하면 해당 양식 데이터가 태그의 action 속성에 지정된 스크립트 파일로 전송됩니다. 이 예에서는 양식 데이터를 처리하기 위해 파일 자체를 지정합니다. 양식 데이터를 처리하기 위해 다른 PHP 파일을 사용해야 하는 경우 파일 이름을 원하는 파일 이름으로 변경하세요. 그런 다음 슈퍼 전역 변수 $_REQUEST를 사용하여 입력 필드의 값을 수집할 수 있습니다.
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_REQUEST['fname']; echo $name; ?> </body> </html>
- $GLOBALS 전역 변수가 사용됩니다. PHP 스크립트 어디에서나(함수 또는 메소드를 통해) 전역 변수에 액세스합니다.
- PHP는 모든 전역 변수를 $GLOBALS[index]라는 배열에 저장합니다. 변수의 이름은 배열의 키입니다.
- 주로 전역 변수를 로컬 범위에서 사용할 수 없지만 전역 변수를 사용해야 하는 경우 $GLOBALS를 사용합니다.
다음 예에서는 슈퍼 전역 변수 $GLOBALS를 사용하는 방법을 보여줍니다.
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>
- $_FILES를 사용하여 파일을 업로드해야 하는 경우에는 주로 바이너리 파일을 업로드하는 데 사용됩니다. abc.mp3 파일을 업로드할 때 서버는 $_FILES 변수를 통해 파일에 대한 관련 정보를 얻어야 합니다.
- $_FILES 슈퍼 전역 변수에는 POST 메서드를 통해 서버에 업로드된 데이터에 대한 정보가 포함됩니다. 이 슈퍼 전역 변수는 다른 변수와 달리 5개의 요소를 포함하는 2차원 배열입니다.
element/code ementdescription | ||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
클라이언트 컴퓨터의 원래 이름 $ _files [ 'userfile ' ]['type'] | 브라우저가 "image/gif" | |||||||||||||||||||||||||||||||||||||||||||||||||
$_FILES['userfile']['size']와 같은 정보에 대한 지원을 제공해야 하는 파일의 MIME 유형입니다. | 업로드된 파일 크기(바이트) | |||||||||||||||||||||||||||||||||||||||||||||||||
$_FILES['userfile']['tmp_name'] | 파일 업로드 후 서버에 저장되는 임시 파일 이름 | |||||||||||||||||||||||||||||||||||||||||||||||||
$_FILES['userfile' ]['error'] | 파일 업로드 관련 오류 코드입니다. ['오류']는 PHP 버전 4.2.0에 추가되었습니다. 이 변수의 이름은 error 이지만 이 변수는 실제로 성공 시 채워집니다. 가능한 값은 5개입니다. 표 아래 참고 사항을 참조하세요. ③ | |||||||||||||||||||||||||||||||||||||||||||||||||
前端上传文件示例代码: /**创建一个文件上传表单 允许用户从表单上传文件是非常有用的。 请看下面这个供上传文件的 HTML 表单:**/ <html> <body> <form action="upload_file.php" method="post" enctype="multipart/form-data"> <label for="file">Filename:</label> <input type="file" name="file" id="file" /> <input type="submit" name="submit" value="Submit" /> </form> </body> </html> 后端处理文件示例代码: <?php if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000)) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "Invalid file"; } ?> 6. $_SERVER –> 系统环境变量
下面的例子展示了如何使用 $_SERVER 中的某些元素: <?php echo $_SERVER['PHP_SELF']; echo "<br>"; echo $_SERVER['SERVER_NAME']; echo "<br>"; echo $_SERVER['HTTP_HOST']; echo "<br>"; echo $_SERVER['HTTP_REFERER']; echo "<br>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<br>"; echo $_SERVER['SCRIPT_NAME']; ?> 常用的字段:
7. $_SESSION –> 用于会话控制
①开始 PHP Session : <?php session_start(); ?> <html> <body> </body> </html> ②存储 和使用Session 变量: <?php session_start(); // store session data $_SESSION['views']=1; ?> <html> <body> <?php //retrieve session data echo "Pageviews=". $_SESSION['views']; ?> </body> </html> ③终结 Session //通过 unset() 函数用于释放指定的 session 变量: <?php unset($_SESSION['views']); ?> //通过 session_destroy() 函数彻底终结 session: <?php session_destroy(); ?> 注释:session_destroy() 将重置 session,您将失去所有已存储的 session 数据。 8. $_COOKIE –> 用于会话控制
①创建 Cookie //语法 setcookie(name, value, expire, path, domain); //示例 <?php setcookie("user", "Alex Porter", time()+3600); //创建名为 "user" 的 cookie,把为它赋值 "Alex Porter"。我们也规定了此 cookie 在一小时后过期 ?> <html> <body> </body> </html> ②取回 Cookie 值 //示例a:取回了名为 "user" 的 cookie 的值,并把它显示在了页面上 <?php // Print a cookie echo $_COOKIE["user"]; // A way to view all cookies print_r($_COOKIE); ?> //示例b:使用 isset() 函数来确认是否已设置了 cookie <html> <body> <?php if (isset($_COOKIE["user"])) echo "Welcome " . $_COOKIE["user"] . "!<br />"; else echo "Welcome guest!<br />"; ?> </body> </html> 9. $_ENV –> 服务器端环境变量
$_ENV只是被动的接受服务器端的环境变量并把它们转换为数组元素,你可以尝试直接输出它: //输出内容格式清晰,ThinkPHP可以直接用dump() var_dump($_ENV); //输出到屏幕 print_r($_ENV); //输出key-value键值对 foreach($_ENV as $key=>$val){echo $key.'--------'.$val.'<br>';} 推荐学习:《PHP视频教程》 |
위 내용은 PHP 슈퍼 전역 변수는 몇 개입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!