这些东西在php中是什么?例如:$ _COOKIE [],$ _POST []等

时间:2011-12-21 15:41:26

标签: php arrays cookies syntax

我刚刚开始,所以如果这是一个愚蠢的问题,请原谅。

我正在通过阅读一本书并观看可能稍微过时的视频系列来学习。

在涉及多个页面的某些情况下给出的指令使用常规变量语法,但除非我使用本文标题中提到的语法,否则该语法不起作用。

视频中的示例包括:

第1页:

<?php

setcookie("color","blue");

?>

第2页:

<?php

echo $color;

?>

这对我不起作用。但是,如果我使用其他语法更改内容,它确实有效。

更改为使其可用的变量语法的示例:

第1页:

<?php

setcookie("color","blue");

?>

第2页:

<?php

echo $_COOKIE["color"];

?>

所以我的问题是,我使用的是什么语法(例如:$ _COOKIE [“color”])?它叫什么,它究竟是什么/如何运作?

我意识到这与会话有关,但除此之外我不太了解。

感谢您的帮助!

4 个答案:

答案 0 :(得分:4)

它们被称为Superglobals,它们是始终定义的“特殊”变量。

http://php.net/manual/en/language.variables.superglobals.php

如果启用了邪恶的,邪恶的register_globals,第一个例子可以工作:

http://php.net/manual/en/security.registerglobals.php

如果你是从使用register_globals的来源学习PHP,我建议你找另一个来源。

答案 1 :(得分:3)

第一种语法,您只需“找到已存在的变量”,这取决于名为register globals的PHP功能。很久以前这个功能是为了方便初学者而引入的,但它一直是许多安全问题的根源,并且已经被弃用了一段时间(事实上,对这种模式的支持已经完全在即将发布的PHP 5.4版本中删除。如需快速概述,请阅读常见问题解答中的“how does register_globals affect me?”。

访问“环境”变量(即源自当前HTTP请求或服务器设置的变量)的另一种方法是访问superglobal变量;此页面也链接到上面的寄存器全局部分。

如果您正在阅读依赖于注册全局变量激活的教程,您应该立即停止阅读它们并找到更好和更新的材料。

答案 2 :(得分:2)

是的,该示例不起作用,因为它过时。在PHP中,有一个名为register_globals的设置使该功能正常工作,但不建议使用它。

您正在讨论的语法($_COOKIE["color"])是获取(associative) array元素的语法。 $_COOKIE本身是一个superglobal数组,它始终存储HTTP请求中包含的cookie值。

会话是其他内容,Cookie可用于维护会话。

答案 3 :(得分:0)

这些被称为Superglobals。它们是可在任何地方使用的全局数组,无需使用global()明确定义它们。有可用的sevearl,用于cookie,上传文件,POST变量等。

有关更多信息,最好参考PHP手册:http://php.net/superglobals