Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.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 我应该在函数中使用unset吗?_Php_Unset - Fatal编程技术网

Php 我应该在函数中使用unset吗?

Php 我应该在函数中使用unset吗?,php,unset,Php,Unset,取消设置$data是否有任何目的?如果它包含大数据,我应该取消设置吗 没有必要。当函数返回时,变量会自行消失 即使您取消设置它,您仍然会引用它包含在$this->id和$this->name中的值,因此它们的内存不会被回收。您要回收的唯一内存是指向它们的微小数组对象 当你做作业时,PHP不会复制。字符串和数字是不可变的,因此不需要复制它们。对象通过引用进行复制。而且数组使用写时复制技术,因此只有在旧引用仍然存在的情况下,它才会在以后复制它们,然后您才能修改副本。现在没有更改您使用的php版本。

取消设置
$data
是否有任何目的?如果它包含大数据,我应该取消设置吗



没有必要。当函数返回时,变量会自行消失

即使您取消设置它,您仍然会引用它包含在
$this->id
$this->name
中的值,因此它们的内存不会被回收。您要回收的唯一内存是指向它们的微小数组对象


当你做作业时,PHP不会复制。字符串和数字是不可变的,因此不需要复制它们。对象通过引用进行复制。而且数组使用写时复制技术,因此只有在旧引用仍然存在的情况下,它才会在以后复制它们,然后您才能修改副本。

现在没有更改您使用的php版本。但有时在某些php版本中,grabage收集器不会正确清除局部变量,因此如果您希望确保执行
$data=null;未结算(数据)。关于这个主题,这里有很多内容可以阅读:也可以阅读评论来获得概述。@JustOnUnderMillions谢谢,我正在使用PHP7.0.9。我想它会正确地把它清理干净的。那么,别担心。但是可以阅读php中的引用和引用
此时阻止引用?是的,因为这会创建一个新字符串。因此我们可以说,
Everything
在php中是一个引用,只要您不更改新变量的内容/值。像
$data=null以防止在复杂代码中引用!?除非您的脚本运行很长时间,否则它可能根本不重要。脚本完成后,一切都消失了。我从不费心清除脚本中仅响应web请求的变量。如果您使用的是处理每个项目的循环,则每次读取一行时,都会替换保存前一行数据的变量。除非代码做了一些奇怪的事情,否则任何大数据都不可能长时间存在。