Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中将数组声明为全局数组?_Php_File_Array Push - Fatal编程技术网

如何在PHP中将数组声明为全局数组?

如何在PHP中将数组声明为全局数组?,php,file,array-push,Php,File,Array Push,我需要将数组的内容写入文件,每次加载页面时。。。 我在index.php中创建了数组,并在另一个ajax页面中将内容推送到数组中。。 但我无法全局访问阵列。。它将错误显示为“未定义变量$arr” 这是我的密码 Index.php page... <?php $arr = array(); $ourFileName = "saved_data.txt"; $ourFileHandle = fopen($ourFileName, 'w') or die("can't

我需要将数组的内容写入文件,每次加载页面时。。。 我在index.php中创建了数组,并在另一个ajax页面中将内容推送到数组中。。 但我无法全局访问阵列。。它将错误显示为“未定义变量$arr”

这是我的密码

Index.php page...

<?php
    $arr = array();

    $ourFileName = "saved_data.txt";
    $ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");
    fwrite($ourFileHandle, "");

?>
Index.php页面。。。

在ajax页面中,将$arr声明为,
global$arr并查看这是否有效,但我怀疑这是否有效,因为每次加载页面时,数组都会重置,为什么不为此使用会话?

是的,每个页面加载后变量都会“过期”。如果需要在请求之间保留一些数据,您有几个选项:

  • 将数据传递给客户机(可能在隐藏的表单字段中),然后让他们重新提交(通过GET/POST访问)。这是不好的,因为用户很容易在客户端操作此数据
  • 将变量存储在$\u会话中,该会话将为用户保留。这是不好的,因为如果您有多台服务器,则其他服务器上的数据将无法访问(除非您执行一些奇特的负载平衡,以确保客户端每次都访问同一台服务器)
  • 使用可供所有服务器使用的“临时”存储(memcache、redis)
  • 用户的“持久性”存储(mySQL、mongo),可用于所有服务器

是否在ajax.php中包含index.php?如果包含index.php,请按照“Sabin”所说的操作。
我不明白你想做什么。记住,每次你调用一个php文件时,它与以前的php文件没有关系。如果你想在你的站点中使用一个全局变量,使用db会更好。

看起来你应该使用db而不是文件。你能解释一下你的需要吗?通过查看代码,您所做的似乎是正确的,为什么需要将数组声明为全局数组?@Sabin:becoz如果我不这样做,我应该在ajax页面中声明它,每次加载页面时,它都会创建一个新数组。。那我怎么才能添加内容呢???@Deepthi,是的,我对此表示怀疑。与其将其存储在数组中,不如将其存储在会话中。读取ajax页面中的会话并将其写入文本文件。这对你来说是可行的解决方案。@Deepthi,非常欢迎你,在这里帮助和得到帮助很好。如果我的答案对您有帮助,请将此答案标记为已接受。:)
<?php
    $name_full = $_GET['name_full'];
    $arr = $_GET['$arr'];

    array_push($arr,$name_full);
    /*------------To create a file-----------------*/
    $ourFileName = "saved_data.txt";
    $ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");
    /*---------To save data in the file------------*/
    foreach($arr as $key => $value)
    {
        fwrite($ourFileHandle, $value);
    }
    fwrite($ourFileHandle, ',');
    fclose($ourFileHandle);
    echo $name_full;
?>