【发布时间】:2018-01-06 06:08:41
【问题描述】:
我知道这已经在这里讨论过多次,但我想进一步清楚地理解为什么使用全局变量是不好的做法。并发http请求会变得危险吗?如果这是代码:
<?php
$variable1 = $_REQUEST['userinput'];
sleep(3000);
echo $variable1;
?>
如果有像 user1, user2.. 这样的用户,如果 user1 的输入是 'request1' 而 user2 的输入是 'request2' 并传递给 $_REQUEST['userinput'] 变量,那么并发发送请求时,是否会回显$variable1 显示为各个用户在其浏览器中输入的内容,或者它将通过最后一个用户的输入覆盖第一个用户的输入?为我写得不好的帖子和这个反复的询问道歉。我只是想对全局变量有一个清晰的认识。
【问题讨论】:
-
您的 PHP 应用程序只存在一个请求。在每个请求上,整个代码(您为该请求 url 使用/包含的代码)运行,并在响应时清理并关闭。这意味着您不会有跨请求存在的变量或可能污染其他用户请求的变量。当然,有人认为他们需要一些存储状态,因此会话系统为您提供了一种自动方式来处理分配 cookie 以从(服务器端)存储中获取正确的会话数组数据。但是普通变量会在请求结束后被清除
标签: php variables concurrency request global