PHP 丢失变量数据

Con*_*r B 3 php variables

我遇到 PHP 丢失变量数据的问题。变量中有相当多的数据,因为它基本上包含一个二进制文件,但我想知道这是否是它完全丢失信息的原因。

查看我的代码中用于处理电子邮件附件的片段:

var_dump($data);  
if (array_key_exists('filename', $params) || array_key_exists('name', $params)) {  
    var_dump($data);  
 ...
}
Run Code Online (Sandbox Code Playgroud)

第一个 var_dump 给出了文件所需的输出:

"string(283155) "
--Apple-Mail-5-930065543 ... etc
Run Code Online (Sandbox Code Playgroud)

而第二个给出的输出为:

string(0) ""
...
string(0) ""
Run Code Online (Sandbox Code Playgroud)

知道为什么会发生这种情况吗?如果变量真的很大,PHP 是否会删除变量中的数据?(我没想到,因为我以前从未遇到过这个问题)

如果是这样,有什么解决方法吗?

谢谢!

编辑:还值得一提的是,这些语句之间没有丢失代码。我也只是尝试使用较短的字符串,并且我得到了两个 var_dump 调用的正确输出

a1e*_*x07 5

它永远不应该发生。$data 在 var_dumps 之间的某个地方被净化。如果没有看到代码,很难说 $data 在哪里发生了变化,但是当我使用过度使用 include 的旧代码时,我遇到了类似的问题。例如,

$data = "my_data";
include "file1.php"  // $data can be changed here !
print($data); // not "my_data"  anymore. 
Run Code Online (Sandbox Code Playgroud)