如何故意造成"致命错误:允许的内存大小xxx字节耗尽"

pha*_*zei 6 php memory overflow

每当我收到此错误时,我只是增加了内存来修复它.我有一个案例,为了测试目的,我想让一个页面耗尽所有内存但是我设置了memory_limit.

我不知道该怎么做.

编辑:我试过这个:

<?php
echo "start";
@ini_set('memory_limit', '1M');
$test = "a";
while (1) {
    $test = "a" + $test;    
}
echo "done";
?>
Run Code Online (Sandbox Code Playgroud)

但它没有崩溃.最后它只是打印了"startstart",奇怪的是它被打印了两次......

我想要一个简单的代码示例,"把很多东西放在内存中"......我知道的很多.

and*_*rem 18

应该吃所有的记忆.

$a = 'x';
while (true) {
    $a = $a.$a;
}
Run Code Online (Sandbox Code Playgroud)


Jos*_*osh 8

这是问题所在:

$test = "a" + $test;
Run Code Online (Sandbox Code Playgroud)

+在PHP中是用于算术,而不是字符串连接.使用:

$test = "a" . $test;
Run Code Online (Sandbox Code Playgroud)