天天看点

遇Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 133431312 bytes)解决

一)报错提示:

遇Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 133431312 bytes)解决

二)原因:

php.ini中的内存分配的问题,默认php代码能够申请到的最大内存字节数就是134217728 bytes,如果代码执行的时候再需要更多的内存,就会报错了,于是就将php.ini文件中的配置改了一下。

三)解决方法:

方法一: 修改php.ini(推荐)

进入php.ini文件,将其中的memory_limit 由原本的128M改为256M

遇Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 133431312 bytes)解决

方法二: 在程序里面添加如下语句

方法三: 添加如下内容

php_value memory_limit 256M
           

但是以上的方法其实都不能从根本上解决问题,因为一个php脚本一次请求的内存空间就要超过128M,那不管以后将memory_limit设置成多大,以后肯定有出问题的时候。究其原因,是在编码时,仅仅对变量赋值却从来没有 unset ($var) 过。导致了内存占用越来越多,所以以后一个变量不再使用之后,一定要记得unset掉它,如下:

方法四: 根据报错提示中的路径找到对应文件(index.php)的指定行数 67行 ,可以发现是与$ num 变量相关的,所以因为设置了$ num 所以我们要把它unset掉:

在文件的末行输入

unset($num);

即可:

修改完配置文件之后一定要重启才会生效。

遇Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 133431312 bytes)解决

四)unset函数讲解

unset() 函数用于销毁给定的变量,它对PHP 版本要求: PHP 4, PHP 5, PHP 7,使用时的语法是

void unset ( mixed $var [, mixed $... ] )

。对于它的参数说明:$var: 要销毁的变量,且此函数没有返回值。