이전 기사에서는 "5분 안에 PHP 익명 함수 이해하기(상세 예시)"를 가져왔습니다. 이번 기사에서는 PHP의 익명 함수에 대한 관련 지식을 자세히 소개합니다. 함수 내부에서 참조할 수 있는 슈퍼 전역 변수에 대한 관련 이슈를 살펴보시고 모든 분들께 도움이 되었으면 좋겠습니다!
함수 외부에서 정의된 전역 변수는 함수 내부에서 참조할 수 없지만, 때로는 함수 내에서 이러한 전역 변수를 사용해야 하는 경우가 있습니다. 슈퍼 전역 변수는 함수 내에서 참조될 수 있습니다.
PHP에는 여러 개의 슈퍼 전역 변수가 사전 정의되어 있어 스크립트의 모든 범위에서 참조할 수 있습니다. 특별한 지시 없이 슈퍼 전역 변수를 함수와 클래스에서 사용할 수 있습니다.
PHP 슈퍼 전역 변수:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$ _ENV
$_COOKIE
$_SESSION
오늘은 일상적으로 흔히 사용되는 몇 가지 슈퍼 전역 변수에 대해 살펴보겠습니다. 다음으로 이러한 슈퍼 전역 변수의 몇 가지 예를 살펴보겠습니다. . 일부 용도 및 기능.
먼저 살펴보겠습니다.
PHP $GLOBALS
$GLOBALS
는 전역 범위에서 사용 가능한 모든 변수를 포함하는 사전 정의된 슈퍼 전역 배열입니다. 변수 이름은 다음과 같습니다. 배열의 키. $GLOBALS는 PHP 스크립트의 전체 범위에서 액세스할 수 있습니다. $GLOBALS
是一个预定义的超全局数组,其中包含了全局作用域中的所有可用变量,变量的名字就是数组的键。$GLOBALS在一个PHP脚本的全部作用域中都可以访问。
示例如下:
<?php //定义两个全局变量,函数内部不可以访问 $a = 75; $b = 25; //定义函数 function addition() { //将全局变量变为超级全局变量,这样在函数内部就可以正常访问了 $GLOBALS['c'] = $GLOBALS['a'] + $GLOBALS['b']; } //调用函数 addition(); //输出函数内部定义的全局变量 echo $c; ?>
输出结果:
$GLOBALS 不限定必须在函数内部使用,在程序的任意位置都能使用。由上述示例看得出,全局变量变为超级全局变量,这样在函数内部就可以正常访问了。
global
还有一个与$GLOBALS 很类似的叫 global
关键字,它也可以让我们在函数内部使用在函数外部定义的全局变量。
语法格式如下:
global 变量1, 变量2, ...
global 关键字后面可以和多个变量作为参数,多个变量之间以“,”(逗号)分隔。同时,使用global要注意一些关键点:
global 关键字,不能在函数外部使用,只能在函数内部使用;
global 关键字只能用来引用函数外部的全局变量,在引用时不能直接赋值,赋值和声明语句需要分开写;
在函数内部销毁一个使用 global 关键字修饰的变量时,函数外部的变量不受影响。
示例如下:
<?php $a = 1; $b = 2; $c = 3; function demo(){ global $a, $b; echo "变量 a:".$a; echo "<br>变量 b:".$b; echo "<br>变量 c:".$c; } demo(); ?>
在上述例子中,定义了三个变量,但是在函数内global关键字只修饰了两个变量,那输出结果会有什么影响呢?
输出结果:
可以看出,结果只输出了变量a和b的,因为global关键字只在函数内修饰了两个,所以变量c没有使用成功。
通过两个例子我们能够看出与 global 相比,$GLOBALS 有一下几点不同:
global $ 指的是对函数外部同名变量的引用,是两个互不影响的变量,而 $GLOBALS[] 指的是函数外部变量本身,是一个变量。
$GLOBALS 不限定必须在函数内部使用,在程序的任意位置都能使用。
PHP $_SERVER
PHP $_SERVER准确来说是一个数组,$_SERVER 包含了头信息、路径、以及脚本位置等等信息。这个数组中的项目由 Web 服务器创建。服务器可能会忽略一些,不一定每个服务器都提供全部项目。
接下来给大家举个例子如何使用PHP $_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 变量中的重要元素:
$_SERVER['PHP_SELF']
---当前执行脚本的文件名,与 document root 有关。
$_SERVER['GATEWAY_INTERFACE']
global
키워드도 있습니다. 이를 통해 함수 내부에서 함수 외부에 정의된 전역 변수를 사용할 수도 있습니다. 🎜🎜구문 형식은 다음과 같습니다. 🎜rrreee🎜전역 키워드 뒤에는 여러 변수가 매개변수로 올 수 있으며, 여러 변수는 ","(쉼표)로 구분됩니다. 동시에 전역을 사용할 때 몇 가지 핵심 사항에 주의해야 합니다. 🎜🎜🎜🎜 전역 키워드는 함수 외부에서 사용할 수 없지만 🎜🎜🎜🎜 전역 키워드는 함수 내부에서만 사용할 수 있습니다. 함수 외부에서 전역 변수를 참조하는 데 사용됩니다. 참조 시 직접 할당은 허용되지 않으며 할당문과 선언문은 별도로 작성해야 합니다. 🎜🎜🎜🎜global 키워드로 수정된 변수가 함수 내부에서 소멸되면, 기능에는 영향을 미치지 않습니다. 🎜🎜🎜🎜예제는 다음과 같습니다. 🎜🎜rrreee🎜위 예에서는 3개의 변수가 정의되어 있는데, 전역 키워드는 함수에서 2개의 변수만 수정하는 것인데, 출력 결과에 어떤 영향을 미칠까요? 🎜🎜🎜출력 결과: 🎜🎜🎜🎜결과적으로 변수 a, b만 출력되는 것을 알 수 있습니다. global 키워드는 함수 내 변수 2개만 수정했기 때문에 c 변수는 성공적으로 사용되지 않았습니다. 🎜🎜두 가지 예를 통해 $GLOBALS는 global과 비교하여 다음과 같은 차이점이 있음을 알 수 있습니다. 🎜🎜🎜🎜global $는 함수 외부에서 동일한 이름의 변수에 대한 참조를 참조하며, 이는 영향을 미치지 않는 두 변수입니다. $GLOBALS[]는 함수 외부 변수 자체인 변수를 참조합니다. 🎜🎜🎜🎜$GLOBALS는 함수 내부에만 국한되지 않고 프로그램 내 어디에서나 사용할 수 있습니다. 🎜🎜🎜🎜🎜🎜PHP $_SERVER🎜🎜🎜🎜🎜PHP $_SERVER는 정확하게 말하면 헤더 정보, 경로, 스크립트 위치 및 기타 정보를 포함하는 배열입니다. 이 배열의 항목은 웹 서버에 의해 생성됩니다. 서버는 일부를 무시할 수 있으며 모든 서버에서 모든 항목을 사용할 수 있는 것은 아닙니다. 🎜🎜PHP $_SERVER 사용 방법에 대한 예를 들어 보겠습니다. 🎜rrreee🎜결과 출력🎜🎜🎜🎜🎜 $_SERVER 변수의 더 중요한 요소를 공유하세요: 🎜🎜🎜🎜$_SERVER['PHP_SELF']---문서 루트와 관련된 현재 실행 중인 스크립트의 파일 이름입니다. 🎜🎜🎜🎜<code>$_SERVER['GATEWAY_INTERFACE']
---서버에서 사용하는 CGI 사양 버전입니다. 🎜
$_SERVER['SERVER_ADDR']
---스크립트가 현재 실행 중인 서버의 IP 주소입니다. $_SERVER['SERVER_ADDR']
---当前运行脚本所在的服务器的 IP 地址。
$_SERVER['SERVER_NAME']
---当前运行脚本所在的服务器的主机名。
$_SERVER['SERVER_SOFTWARE']
---服务器标识字符串,在响应请求时的头信息中给出。
$_SERVER['SERVER_PROTOCOL']
---请求页面时通信协议的名称和版本。
$_SERVER['REQUEST_METHOD']
---访问页面使用的请求方法。
$_SERVER['REQUEST_TIME']
---请求开始时的时间戳。从 PHP 5.1.0 起可用。
$_SERVER['QUERY_STRING']
---query string(查询字符串),如果有的话,通过它进行页面访问。
$_SERVER['HTTP_ACCEPT']
---当前请求头中 Accept: 项的内容,如果存在的话。
$_SERVER['HTTP_ACCEPT_CHARSET']
---当前请求头中 Accept-Charset: 项的内容,如果存在的话。
$_SERVER['HTTP_HOST']
---当前请求头中 Host: 项的内容,如果存在的话。
$_SERVER['HTTP_REFERER']
---引导用户代理到当前页的前一页的地址(如果存在)。
$_SERVER['HTTPS']
---如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值。
$_SERVER['REMOTE_ADDR']
---浏览当前页面的用户的 IP 地址。
$_SERVER['REMOTE_HOST']
---浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。
$_SERVER['REMOTE_PORT']
---用户机器上连接到 Web 服务器所使用的端口号。
$_SERVER['SCRIPT_FILENAME']
---当前执行脚本的绝对路径。
$_SERVER['SERVER_ADMIN']
---该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。
$_SERVER['SERVER_PORT']
---Web 服务器使用的端口。默认值为 "80"。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。
$_SERVER['SERVER_SIGNATURE']
---包含了服务器版本和虚拟主机名的字符串。
$_SERVER['PATH_TRANSLATED']
---当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。
$_SERVER['SCRIPT_NAME']
---包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 常量包含当前脚本(例如包含文件)的完整路径和文件名。
$_SERVER['SCRIPT_URI']
$_SERVER['SERVER_NAME']
---스크립트가 현재 실행 중인 서버의 호스트 이름입니다.
$_SERVER['SERVER_SOFTWARE']
---요청에 응답할 때 헤더 정보에 제공되는 서버 식별 문자열입니다. 🎜🎜🎜🎜$_SERVER['SERVER_PROTOCOL']
---페이지 요청 시 통신 프로토콜의 이름과 버전. 🎜🎜🎜🎜$_SERVER['REQUEST_METHOD']
---페이지에 액세스하는 데 사용되는 요청 방법입니다. 🎜🎜🎜🎜$_SERVER['REQUEST_TIME']
---요청이 시작된 타임스탬프입니다. PHP 5.1.0부터 사용 가능합니다. 🎜🎜🎜🎜$_SERVER['QUERY_STRING']
---쿼리 문자열(쿼리 문자열)이 있는 경우 이를 사용하여 페이지에 액세스합니다. 🎜🎜🎜🎜$_SERVER['HTTP_ACCEPT']
---현재 요청 헤더에 Accept: 항목이 있는 경우 항목의 내용입니다. 🎜🎜🎜🎜$_SERVER['HTTP_ACCEPT_CHARSET']
---현재 요청 헤더에 Accept-Charset: 항목의 내용(있는 경우). 🎜🎜🎜🎜$_SERVER['HTTP_HOST']
---현재 요청 헤더에 Host: 항목의 콘텐츠(존재하는 경우). 🎜🎜🎜🎜$_SERVER['HTTP_REFERER']
---현재 페이지의 이전 페이지 주소(존재하는 경우)로 사용자 에이전트를 연결합니다. 🎜🎜🎜🎜$_SERVER['HTTPS']
---HTTPS 프로토콜을 통해 스크립트에 액세스하는 경우 비어 있지 않은 값으로 설정됩니다. 🎜🎜🎜🎜$_SERVER['REMOTE_ADDR']
---현재 페이지를 탐색하는 사용자의 IP 주소. 🎜🎜🎜🎜$_SERVER['REMOTE_HOST']
---현재 페이지를 탐색하는 사용자의 호스트 이름입니다. DNS 역방향 확인은 사용자의 REMOTE_ADDR에 의존하지 않습니다. 🎜🎜🎜🎜$_SERVER['REMOTE_PORT']
---웹 서버에 연결하기 위해 사용자 컴퓨터에서 사용되는 포트 번호입니다. 🎜🎜🎜🎜$_SERVER['SCRIPT_FILENAME']
---현재 실행 중인 스크립트의 절대 경로입니다. 🎜🎜🎜🎜$_SERVER['SERVER_ADMIN']
---이 값은 Apache 서버 구성 파일의 SERVER_ADMIN 매개변수를 지정합니다. 스크립트가 가상 호스트에서 실행 중인 경우 이 값은 해당 가상 호스트의 값입니다. 🎜🎜🎜🎜$_SERVER['SERVER_PORT']
---웹 서버에서 사용하는 포트입니다. 기본값은 "80"입니다. SSL 보안 연결을 사용하는 경우 이 값은 사용자가 설정한 HTTP 포트입니다. 🎜🎜🎜🎜$_SERVER['SERVER_SIGNATURE']
---서버 버전과 가상 호스트 이름이 포함된 문자열입니다. 🎜🎜🎜🎜$_SERVER['PATH_TRANSLATED']
---현재 스크립트가 있는 파일 시스템의 기본 경로(문서 루트 디렉터리 아님)입니다. 이는 서버를 가상 경로에서 실제 경로로 이미지화한 후의 결과입니다. 🎜🎜🎜🎜$_SERVER['SCRIPT_NAME']
---현재 스크립트의 경로가 포함되어 있습니다. 이는 페이지가 자신을 가리켜야 할 때 유용합니다. __FILE__ 상수에는 현재 스크립트(예: 포함 파일)의 전체 경로와 파일 이름이 포함됩니다. 🎜🎜🎜🎜$_SERVER['SCRIPT_URI']
---URI는 액세스할 페이지를 지정하는 데 사용됩니다. 예를 들어 "/index.html"입니다. 🎜🎜🎜🎜추천 학습: "🎜PHP 비디오 튜토리얼🎜"🎜위 내용은 PHP 슈퍼 전역 변수를 얻는 방법(구성 및 공유)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!