PHP中的超全局变量解析和用法示例

2021年4月10日11:37:09 发表评论 970 次浏览

我们已经在后面的PHP |变量和数据类型中讨论了PHP中的变量和全局变量。在这篇文章中,我们将学习PHP中的超全局变量。

这些是PHP中特别定义的数组变量, 可让你轻松获取有关请求或其上下文的信息。超全局变量在整个脚本中都可用。可以从任何函数, 类或任何文件访问这些变量, 而无需执行任何特殊的任务, 例如声明任何全局变量等。它们主要用于在应用程序中从一页到另一页的信息存储和获取信息。

以下是PHP中可用的超全局变量列表:

  1. $GLOBALS
  2. $_SERVER
  3. $_REQUEST
  4. $_GET
  5. $_POST
  6. $_SESSION
  7. $_COOKIE
  8. $_FILES
  9. $_ENV

现在让我们详细了解其中一些超级全局变量:

$GLOBALS

:这是一个超全局变量, 用于从PHP脚本中的任何位置访问全局变量。 PHP将所有全局变量存储在数组$GLOBALS []中, 其中index包含可以访问的全局变量名称。

下面的程序说明了$GLOBALS在PHP中的用法:

<?php
$x = 300;
$y = 200;
  
function multiplication(){
     $GLOBALS [ 'z' ] = $GLOBALS [ 'x' ] * $GLOBALS [ 'y' ];
}
  
multiplication();
echo $z ;
?>

输出:

60000

在上面的代码中, 声明了两个全局变量$x和$y给他们分配了一些价值。然后一个功能乘法()被定义为乘以$x和$y并存储在另一个变量中$z在定义全局数组.

$_SERVER

:这是一个PHP超全局变量, 用于存储有关标题, 路径和脚本位置的信息。其中一些元素用于从超全局变量$_SERVER获取信息。

下面的程序说明了$_SERVER在PHP中的用法:

<?php
echo $_SERVER [ 'PHP_SELF' ];
echo "<br>" ;
echo $_SERVER [ 'SERVER_NAME' ];
echo "<br>" ;
echo $_SERVER [ 'HTTP_HOST' ];
echo "<br>" ;
echo $_SERVER [ 'HTTP_USER_AGENT' ];
echo "<br>" ;
echo $_SERVER [ 'SCRIPT_NAME' ];
echo "<br>"
?>

输出:

PHP中的超全局变量解析和用法示例1

在上面的代码中, 我们使用$_SERVER元素来获取一些信息。我们得到当前文件名, 可以使用" PHP_SELF"元素进行处理。然后, 我们使用" SERVER_NAME"元素获取当前使用的服务器名称。然后我们通过" HTTP_HOST"获得主机名。

$_REQUEST

:这是一个超全局变量, 用于在提交HTML表单后收集数据。 $_REQUEST很少使用, 因为$_POST和$_GET执行相同的任务并且被广泛使用。

以下是解释$_REQUEST如何工作的HTML和PHP代码:

<!DOCTYPE html>
<html>
<body>
  
<form method = "post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  NAME: <input type = "text" name = "fname">
  <button type = "submit">SUBMIT</button>
</form>
<? php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
     $name = htmlspecialchars ($_REQUEST['fname']);
     if(empty($name)){
         echo "Name is empty";
     } else {
         echo $name;
     }
}
?>
</body>
</html>

输出:

PHP中的超全局变量解析和用法示例2

在上面的代码中, 我们创建了一个表单, 该表单将名称作为用户输入的名称, 并在单击"提交"按钮时将其打印出来。我们使用以下方式将表格中接受的数据传输到同一页面$_SERVER [‘PHP_SELF’]动作属性中指定的元素, 因为我们使用PHP代码在同一页面中操作数据。使用$_REQUEST超全局数组变量检索数据

$_POST:这是一个超级全局变量, 用于在提交HTML表单后收集其数据。当表单使用方法过帐来传输数据时, 该数据在查询字符串中不可见, 因为在此方法中维护了哪些安全级别。

以下是解释$_POST如何工作的HTML和PHP代码:

<!DOCTYPE html>
<html>
<body>
   
<form method = "post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  <label for = "name">Please enter your name: </label>
  <input name = "name" type = "text"><br>
  <label for = "age">Please enter your age: </label>
  <input name = "age" type = "text"><br>
  <input type = "submit" value = "Submit">
  <button type = "submit">SUBMIT</button>
</form>
<? php
$nm=$_POST['name'];
$age=$_POST['age'];
echo "<strong>".$nm." is $age years old.</strong>";
?>
</body>
</html>

输出:

PHP中的超全局变量解析和用法示例3

在上面的代码中, 我们创建了一个表单, 该表单使用用户的姓名和年龄, 并在提交数据时使用$_POST超级全局变量访问数据。由于每个超全局变量都是一个数组, 因此它可以存储多个值。因此, 我们从$_POST变量中检索了姓名和年龄, 并将它们存储在$nm和$age变量中。

$_GET

:$_GET是一个超级全局变量, 用于在提交HTML表单后收集数据。当表单使用get方法传输数据时, 该数据在查询字符串中可见, 因此不会隐藏这些值。 $_GET超级全局数组变量存储URL中的值。

以下是解释$_GET如何工作的HTML和PHP代码:

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body bgcolor = "cyan">    
     <? php
         $name = $_GET['name'];
         $city = $_GET['city'];
         echo "<h1>This is ".$name." of ".$city."</h1><br>";
     ?>
     <img src = "2.jpg" alt = "nanilake" height = "400" width = "500" />
</body>
</html>

实际上, 刚才我们看到了一半的逻辑。在上面的代码中, 我们创建了Nainital Lake的超链接图像, 它将带我们到picture.php页面, 并且还将带参数

name =" Nainilake"

city =" Nainital"

.

那就是当我们单击奈尼塔尔湖的小图像时, 我们将带参数进入下一页picture.php。使用默认方法get时, 这些参数将使用get方法传递到下一页, 它们将在地址栏中可见。当我们想将值传递给地址时, 它们使用问号(?)附加到该地址。

这里的参数

名称= Nainilake

附在地址上。如果我们想添加更多的值, 我们可以在每个键值对之后使用与号(&)添加它们, 类似于

城市=奈尼塔尔

在名称参数之后使用&符号添加。现在, 在单击Nainital Lake的图像后, 我们希望显示picture.php页面, 同时显示参数值。


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: