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ı: 70

PHP 超级全局变量:$_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。