php超全局变量怎么设置
时间 : 2023-04-01 17:18:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

在 PHP 中,超全局变量是一组预定义的变量,通常用于在不同的作用域中共享信息。PHP 超全局变量可以在任何地方访问。超全局变量自 PHP 4.1.0 版本以来就被引入到了 PHP 语言中。这些超全局变量引入了外部数据(例如 $_GET 和 $_POST 变量)并使其可以安全地在脚本内使用。

以下是 PHP 中的超全局变量:

- $GLOBALS:包含所有全局变量的数组。

- $_SERVER:包含当前脚本的服务器信息,如文件路径、脚本名称等等。

- $_GET:包含从 URL 传递的参数。

- $_POST:包含通过 HTTP POST 方法传递的参数。

- $_FILES:包含上传的文件信息。

- $_COOKIE:包含当前脚本中可用的 cookie。

- $_SESSION:包含当前会话中可用的变量。

- $_REQUEST:包含 $_GET、$_POST 和 $_COOKIE 的内容。

为了设置超全局变量,请使用以下方法:

$GLOBAL:

在 PHP 中, $GLOBALS 是一个超全局变量,它包含了所有全局变量的数组。以下是一个示例:

<?php

$x = 10;

$y = 20;

function addition() {

$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];

}

addition();

echo $z;

?>

在此示例中, $GLOBALS 数组中定义了两个变量 $x 和 $y,并使用它们定义了一个名为 addition() 的新函数。然后这个函数使用 $GLOBALS 数组中的 $x 和 $y 变量计算出 $z,并将其添加到 $GLOBALS 数组中。最后,使用 echo 命令输出 $z 变量的值。

$_SERVER:

在 PHP 中,$_SERVER 超全局变量可以用来显示关于当前 HTTP 请求的信息以及服务器信息。例如,您可以使用 $_SERVER[‘PHP_SELF’] 来获取当前正在请求的脚本的文件名。以下是一个示例:

<?php

echo $_SERVER['PHP_SELF'];

?>

在此示例中,使用 echo 命令输出当前正在运行的脚本的文件名。

$_GET和$_POST:

$_GET 和 $_POST 超全局变量用于获取通过 URL 或 HTTP POST 方法传递给 PHP 脚本的信息。以下是一个示例:

<form action="welcome.php" method="get">

Name: <input type="text" name="name"><br>

E-mail: <input type="text" name="email"><br>

<input type="submit">

</form>

在此示例中,我们创建了一个表单,其中包含一个文本框用于输入用户名和电子邮件地址。当用户单击“提交”按钮时,表单将使用 GET 方法将输入的值发送到名为 welcome.php 的 PHP 脚本中。如下所示:

Welcome <?php echo $_GET["name"]; ?><br>

Your email address is: <?php echo $_GET["email"]; ?>

在此示例中,我们使用 $_GET 超全局变量从 URL 获取值,并将其用于显示欢迎消息和电子邮件地址。

$_FILES:

$_FILES 超全局变量用于从表单中上传的文件中获取信息。以下是一个示例:

<form action="upload.php" method="post" enctype="multipart/form-data">

Select image to upload:

<input type="file" name="fileToUpload" id="fileToUpload">

<input type="submit" value="Upload Image" name="submit">

</form>

在此示例中,我们创建了一个表单,用户可以上传文件。当用户单击“上传图片”按钮时,表单会将文件发送到名为 upload.php 的 PHP 脚本中。以下是一个示例:

$target_dir = "uploads/";

$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);

在此示例中,我们使用 $_FILES 超全局变量获取上传文件的基本信息,并将其存储在服务器上。

$_COOKIE:

$_COOKIE 超全局变量用于获取 cookie 信息。以下是一个示例:

<?php

echo $_COOKIE["user"];

?>

在此示例中,我们使用 $_COOKIE 超全局变量获取名为“user”的 cookie 的值,并将其输出到屏幕上。

$_SESSION:

$_SESSION 超全局变量用于在 PHP 的不同页面之间共享信息。以下是一个示例:

<?php

session_start();

$_SESSION['color'] = "red";

$_SESSION['animal'] = "dog";

?>

<!DOCTYPE html>

<html>

<body>

<?php

echo "Session variables are set.";

?>

</body>

</html>

在此示例中,我们使用 session_start() 函数开始会话,并使用 $_SESSION 超全局变量将信息保存在会话中。我们还使用 echo 命令输出一则消息,通知用户 Session 变量已设置。

$_REQUEST:

$_REQUEST 超全局变量用于获取通过 HTTP GET 和 POST 方法提交的参数。示例:

<?php

$name = $_REQUEST['name'];

$email = $_REQUEST['email'];

?>

在此示例中,我们使用 $_REQUEST 超全局变量从表单中获取用户输入的姓名和电子邮件地址,并将它们存储在 $name 和 $email 变量中。

总结:

超全局变量使得从表单、URL、cookie 和服务器参数等数据源中获取和操作信息变得更加容易。超全局数组与正常数组的操作方法类似,但超全局数组可以在脚本中的任何地方访问。本文从 8 个超全局变量入手,介绍了 PHP 超全局变量的用法和设置方法。

在 PHP 中,有一些特殊的全局变量被称为超全局变量。这些变量不需要在函数内部通过 global 关键字来声明即可在任何地方被访问。本文将会介绍如何设置和使用 PHP 中的超全局变量。

## 超全局变量有哪些?

PHP 中的超全局变量有以下几个:

- `$GLOBALS`:包含了所有全局变量的数组;

- `$_SERVER`:包含了服务器信息以及客户端请求的头信息等;

- `$_GET`:包含了 GET 请求产生的参数;

- `$_POST`:包含了 POST 请求产生的参数;

- `$_FILES`:包含了文件上传请求产生的参数;

- `$_COOKIE`:包含了客户端发送的 cookie;

- `$_SESSION`:包含了当前会话中的所有变量;

- `$_REQUEST`:包含了 GET、POST 和 COOKIE 请求产生的参数。

## 如何设置超全局变量?

超全局变量的值是自动设置的,不需要手动设置。例如,`$_GET` 数组中的值是自动从 URL 参数中获取的,`$_POST` 数组中的值是自动从 POST 请求中获取的。

如果你想给 `$GLOBALS` 数组中新增一个键值对,可以直接进行赋值:

```php

$GLOBALS['myVar'] = 'hello world';

这样 `$GLOBALS['myVar']` 就被设置成了 `'hello world'`。

对于其他超全局变量,你可以通过修改相关的请求信息来设置。例如,你可以设置一个 GET 参数:

http://localhost/index.php?id=123

这样 `$_GET['id']` 就被设置成了 `'123'`。

## 如何使用超全局变量?

超全局变量可以在任何地方被使用,包括函数内部。在函数内部,你可以使用 `global` 关键字来访问全局变量:

```php

$myVar = 'hello';

function printMyVar() {

global $myVar;

echo $myVar;

}

printMyVar(); // 输出 'hello'

对于超全局变量,你不需要使用 `global` 关键字,直接访问即可:

```php

echo $_SERVER['PHP_SELF'];

在使用 `$_FILES` 变量时,需要注意上传文件的临时路径和目标路径等细节。例如,你可以这样将上传的文件移动到指定的目录下:

```php

$targetDir = '/path/to/target/dir/';

$targetFile = $targetDir . basename($_FILES['file']['name']);

if (move_uploaded_file($_FILES['file']['tmp_name'], $targetFile)) {

echo '文件上传成功';

} else {

echo '文件上传失败';

}

## 总结

PHP 中的超全局变量是一些特殊的全局变量,不需要在函数内部使用 `global` 关键字即可被访问。超全局变量包括 `$GLOBALS`、`$_SERVER`、`$_GET`、`$_POST`、`$_FILES`、`$_COOKIE`、`$_SESSION` 和 `$_REQUEST`。你可以通过修改请求信息来设置超全局变量,也可以直接使用其中的值。在使用 `$_FILES` 变量时需要注意细节,例如上传文件的临时路径和目标路径等。