我们已经在PHP|variables and Data Types中讨论了PHP中的变量和全局变量。在本文中,我们将了解PHP中的超全局变量。
这些是PHP中专门定义的数组变量,使您可以轻松地获取有关请求或其上下文的信息。超级全局变量在整个脚本中都可用。这些变量可以从任何函数、类或任何文件访问,而无需执行任何特殊任务,如声明任何全局变量等。它们主要用于在应用程序中存储和获取从一个页面到另一个页面等的信息。
以下是PHP中可用的超全局变量列表:
$GLOBALS
$_SERVER
$_REQUEST
$_GET
$_POST
$_SESSION
$_COOKIE
$_FILES
$_ENV
$GLOBALS:它是一个超全局变量,用于从PHP脚本中的任何位置访问全局变量。PHP将所有全局变量存储在数组$GLOBALS[]中,其中index包含可以访问的全局变量名。
下面的程序演示了$GLOBALS在PHP中的使用:
<?php
$x = 300;
$y = 200;
function multiplication(){
$GLOBALS['z'] = $GLOBALS['x'] * $GLOBALS['y'];
}
multiplication();
echo $z;
?>
output
60000
在上面的代码中,两个全局变量被声明为$x和$y,它们被赋予了一些值。然后定义一个函数multiplication(),将$x和$y的值相乘,并存储在GLOBAL数组中定义的另一个变量$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>"
?>
在上面的代码中,我们使用$_SERVER元素来获取一些信息。我们获取使用“PHP_SELF”元素处理的当前文件名。然后,我们使用“server_name”元素获取当前使用的服务器名称。然后我们通过HTTP_host获取主机名。
$_REQUEST:它是一个超全局变量,用于在提交HTML表单后收集数据。$_REQUEST不是主要使用的,因为$_POST和$_GET执行相同的任务,并且被广泛使用。
以下是HTML和PHP代码,用于解释$_REQUEST的工作原理:
<!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>
在上面的代码中,我们创建了一个表单,它接受用户输入的名称,并在单击提交按钮时打印其名称。我们使用action属性中指定的$_SERVER[‘PHP_SELF’]元素将表单中接受的数据传输到同一页,因为我们使用PHP代码在同一页中操作数据。使用$_REQUEST超全局数组变量检索数据
$_POST:它是一个超级全局变量,用于在提交HTML表单后从表单中收集数据。当表单使用方法POST传输数据时,数据在查询字符串中不可见,因为这种方法维护了安全级别。
以下是HTML和PHP代码,用于解释$_POST的工作原理:
<!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>
在上面的代码中,我们创建了一个表单,该表单采用用户的姓名和年龄,并在用户提交数据时使用$_POST超级全局变量访问数据。由于每个超全局变量都是一个数组,因此它可以存储多个值。因此,我们从$_POST变量中检索名称和年龄,并将它们存储在$nm和$age变量中。
$_GET:$_GET是一个超级全局变量,用于在提交HTML表单后从表单中收集数据。当表单使用GET方法传输数据时,数据在查询字符串中可见,因此值不会隐藏$_GET超级全局数组变量存储URL中的值。
以下是HTML和PHP代码,用于解释$_GET的工作原理:
<!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方法传递到下一页,并且它们将在地址栏中可见。当我们想要将值传递到地址时,它们会使用问号(?)附加到地址。
在这里,参数name=Nainilake被附加到地址。如果我们想添加更多的值,我们可以在每个键值对后使用“与”符号(&)添加它们,类似于在name参数后使用“和”符号添加city=Nainital。