PHP - 为什么全局变量是邪恶的

PHP - why global variables are evil

我知道这已经在这里讨论过多次,但我想进一步清楚地理解为什么使用全局变量是不好的做法。并发 http 请求会变得危险吗?如果这是代码:

<?php
    $variable1 = $_REQUEST['userinput'];
    sleep(3000);
    echo $variable1;
?>

如果有像 user1,user2 这样的用户.. 如果 user1 的输入是 'request1' 并且 user2 的输入是 'request2' 传递给 $_REQUEST['userinput'] 变量,然后并发发生请求发送时,回显的 $variable1 是否会显示为各个用户在其浏览器中输入的内容,还是会用最后一个用户的输入覆盖第一个用户的输入?为我写得不好的 post 和重复的询问道歉。我只是想清楚地了解全局变量。

全局变量可以被当前堆栈中 运行ning 中的任何 php 访问和更改。有时是通过您没有编写的其他脚本,这些脚本是框架的一部分或加载的代码库。

当许多文件中的值可以修改时,调试代码非常困难。

在一个简单的并发请求示例中并不明显,这些请求全部 运行 在不同的内存堆栈中,它在整个系统中全局变量可能变得不可预测。

我回答这个问题:

will the echoed $variable1 be displayed as what the respective users have input to their browser or it will override the first user's input by the last user's input?

回显的 $variable1 将显示为相应用户在其浏览器中输入的内容。

PHP 每个请求创建一个线程,所以不同的请求有不同的变量(包括全局变量)。

我检查this post

正如 JasonB 所说, PHP 全局变量的范围很广,代码也很复杂。