PHP 超级全局变量是可以从所有范围访问的内置变量。
PHP 超级全局变量(PHP 超级全局变量)
在本课中,我们将通过示例解释 PHP 中的所有超级全局变量。请继续阅读以找出答案。
PHP 超级全局变量:$GLOBALS
$GLOBALS 超全局变量用于访问 PHP 脚本中任何字段(包括函数或方法)的全局变量。 PHP 将所有全局变量存储在名为 $GLOBALS[index] 的数组中。索引保存变量的名称。以下示例显示如何使用 $GLOBALS 超全局变量:
$number1 = 50;
$number2 = 20;
function addition(): int
{
return $GLOBALS[ 'number3' ] = $GLOBALS[ 'number2' ] + $GLOBALS[ 'number1' ];
}
echo addition();
// Çıktı: 70PHP 超级全局变量:$_REQUEST
PHP $_REQUEST 是 PHP 超全局变量,用于从 HTML 表单收集数据。
<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'POST') {
// input elementinden gelen veriyi değişkene ata
$name = htmlspecialchars($_REQUEST[ 'fname' ]);
if (empty($name)) {
echo 'Ad yok';
} else {
echo $name;
}
}
?>
</body>
</html>在上面的示例中,我们创建了一个使用 post 方法返回数据的表单。我们使其能够在与 $_SERVER['PHP_SELF'] 相同的页面上返回数据。我们验证了 $_SERVER['REQUEST_METHOD'] 超全局附带的请求是一个 post 请求。然后,我们使用 htmlspecialchars() 函数将来自名为 fname 的输入以及名称值的数据安全地分配给 $name 变量,并使用 $_REQUEST 超全局变量。我们使用 PHP if 条件检查 $name 变量是否为空。如果为空,我们打印输出“No name”,否则我们打印 $name 变量的数据。
PHP 超级全局变量:$_POST
PHP $_POST 是一个 PHP 超全局变量,用于通过 POST 方法从 HTML 表单收集数据。
<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'POST') {
// input elementinden gelen veriyi değişkene ata
$name = htmlspecialchars($_POST[ 'fname' ]);
if (empty($name)) {
echo 'Ad yok';
} else {
echo $name;
}
}
?>
</body>
</html>在上面的示例中,我们创建了一个使用 post 方法返回数据的表单。我们使其能够在与 $_SERVER['PHP_SELF'] 相同的页面上返回数据。我们验证了 $_SERVER['REQUEST_METHOD'] 超全局附带的请求是一个 post 请求。然后,我们使用 htmlspecialchars() 函数将来自名为 fname 的输入(具有名称值)的数据安全地分配给具有 $_POST 超全局变量的 $name 变量。我们使用 PHP if 条件检查 $name 变量是否为空。如果为空,我们打印输出“No name”,否则我们打印 $name 变量的数据。
PHP 超级全局变量:$_GET
PHP $_GET 是一个 PHP 超全局变量,用于通过 GET 方法从 HTML 表单收集数据。我们还可以使用 $_GET 超全局检索 url 中通过 get 发送的数据。
使用 PHP 从表单获取数据 $_GET 超级全局
在下面的示例中,我们使用 PHP $_GET 超全局从 HTML 表单接收数据。
<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'GET') {
// input elementinden gelen veriyi değişkene ata
$name = htmlspecialchars($_GET[ 'fname' ]);
if (empty($name)) {
echo 'Ad yok';
} else {
echo $name;
}
}
?>
</body>
</html>在上面的示例中,我们创建了一个使用 post 方法返回数据的表单。我们使其能够在与 $_SERVER['PHP_SELF'] 相同的页面上返回数据。我们验证了 $_SERVER['REQUEST_METHOD'] 超全局附带的请求是一个 post 请求。然后,我们使用 htmlspecialchars() 函数将来自名为 fname 的输入(具有名称值)的数据安全地分配给具有 $_POST 超全局变量的 $name 变量。我们使用 PHP if 条件检查 $name 变量是否为空。如果为空,我们打印输出“No name”,否则我们打印 $name 变量的数据。
使用 PHP $_GET 超级全局从 URL 获取数据
在下面的示例中,我们使用 PHP $_GET 超全局从 URL 检索数据。
<!DOCTYPE html>
<html>
<body>
<a href="<?php
echo $_SERVER[ 'PHP_SELF' ] ?>?name=Onur%20Özden&website=www.onurozden.com.tr">Buraya Tıkla</a>
<?php
echo "Ben " . $_GET[ 'name' ] . " şu sitede PHP öğreniyorum: " . $_GET[ 'website' ];
?>
</body>
</html>在上面的示例中,我们没有输入文件名,而是使用 $_SERVER 超全局变量获取文件名。现在让我们解释一下我们在这个例子中做了什么。我们创建了一个 HTML 文档并将 name 参数赋予 get.php 文件。我们为 name 参数赋予值“Onur Özden”,并用“&”符号分隔参数。之后,我们创建了网站参数并为其赋予值“onurozden.com.tr”。我们在标签 A 上打印了“Click Here”。对于 PHP 部分,我们用 echo 打印了“My name”,并使用 $_GET 超全局变量和连接运算符来检索和打印名为 name 的参数的数据。再次,使用合并运算符,我们打印了“和我的网站”。我们再次使用连接运算符,通过 $GET 超全局变量获取网站参数的数据并打印出来。
PHP 超级全局变量:$_SERVER
$_SERVER 超全局变量是一个 PHP 超全局变量,它保存有关标头、路径和脚本位置的信息。在下面的示例中,我们展示了如何使用 $_SERVER 超全局变量。
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'];在上面的例子中,我们定义了名为$number1和$number2的变量,并给它们赋予了number类型的值。然后,我们定义了一个名为addition的函数,它返回一个int数据类型的值。我们说过,在 $GLOBALS 超全局中,变量的名称作为索引保存。我们通过创建名为 number3 的索引来创建该变量。我们将此变量指定为 $number2 变量和 $number1 变量的总和,我们通过 $GLOBALS 超全局变量从全局区域访问该变量。然后我们使用 return 返回该值并终止该函数。最后一步,我们用 echo 输出addition() 函数中的值。
PHP $_SERVER 超级全局的所有使用
| $_SERVER['PHP_SELF'] | 返回已执行脚本的文件名。 |
| $_SERVER['GATEWAY_INTERFACE'] | 返回服务器使用的 CGI(通用网关接口)版本。 |
| $_SERVER['SERVER_ADDR'] | 返回主机服务器的 IP 地址。 |
| $_SERVER['SERVER_NAME'] | 返回主服务器的名称。 |
| $_SERVER['SERVER_SOFTWARE'] | 返回服务器标识文本(例如 Apache/2.2.24)。 |
| $_SERVER['SERVER_PROTOCOL'] | 返回信息协议的名称和版本(例如 HTTP/1.1)。 |
| $_SERVER['REQUEST_METHOD'] | 返回用于访问页面的请求方法(例如POST、GET)。 |
| $_SERVER['REQUEST_TIME'] | 返回请求开始的时间戳(例如 1377687496)。 |
| $_SERVER['QUERY_STRING'] | 如果通过查询字符串访问页面,则返回查询字符串。 |
| $_SERVER['HTTP_ACCEPT'] | 返回当前请求的接受标头。 |
| $_SERVER['HTTP_ACCEPT_CHARSET'] | 返回当前请求的 Accept_Charset 标头(例如 utf-8、ISO-8859-1)。 |
| $_SERVER['HTTP_HOST'] | 返回当前请求的主机标头。 |
| $_SERVER['HTTP_REFERER'] | 返回当前页面的完整 URL(不可靠,因为并非所有用户代理都支持它)。 |
| $_SERVER['HTTPS'] | 检查是否通过安全 HTTP 协议 (HTTPS) 查询脚本。 |
| $_SERVER['REMOTE_ADDR'] | 返回用户查看当前页面的 IP 地址。 |
| $_SERVER['REMOTE_HOST'] | 返回用户查看当前页面的主机名。 |
| $_SERVER['REMOTE_PORT'] | 返回用户计算机上用于与 Web 服务器通信的端口。 |
| $_SERVER['SCRIPT_FILENAME'] | 返回当前正在执行的脚本的绝对路径。 |
| $_SERVER['SERVER_ADMIN'] | 返回为 Web 服务器配置文件中的 SERVER_ADMIN 指令指定的值(如果您的脚本在虚拟主机上运行,则它将是为该虚拟主机定义的值)(如 some@onurozden.com.tr)。 |
| $_SERVER['SERVER_PORT'] | 返回 Web 服务器用于通信的服务器计算机上的端口(例如 80)。 |
| $_SERVER['SERVER_SIGNATURE'] | 返回添加到服务器生成的页面的服务器版本和虚拟主机名。 |
| $_SERVER['PATH_TRANSLATED'] | 返回当前脚本的基于文件系统的路径。 |
| $_SERVER['SCRIPT_FILENAME'] | 返回当前脚本的路径。 |
| $_SERVER['SCRIPT_URI'] | 返回当前页面的 URI。 |



