Hugh Fox Hugh Fox - 4 months ago 10
PHP Question

FATAL ERROR: allocated bytes on simple php script

I am currently learning php, and am struggling to write the results of a function to an array. After a google search it seems as the the function I have created has a bug in it that will create an array that is too large:

Fatal Error: Allowed Memory Size of 134217728 Bytes Exhausted (CodeIgniter + XML-RPC)

Like I said, I am currently learning PHP, and the resources for a custom written script are fairly limited, therefore I am asking if anybody would be kind enough to give me a push in the right direction as to where my code is buggy...

function multiples($number) {
echo "$number entered";
$arr = array();

for ($i = 1; $i = $number; $i++)
{
if($i % 3 == 0){
$arr[] = $i;
}
else if($i % 5 == 0){
$arr[] = $i;
}
else {}
}
}


this returns this when accessing the file through xampp, '$number' being the argument for the function...

'$number' entered

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 36 bytes) in C:\xampp\htdocs\assessment\one.php on line 12

Answer
for ($i = 1; $i == $number; $i++) {
        if($i % 3 == 0){
        $arr[] = $i;
    }
    else if($i % 5 == 0){
        $arr[] = $i;
    }
    else {}
}

Use == instead of =, since == is a conditional operator while = assigns a value.

Comments