0
votes

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

1
Your for loop condition. It should be <= or whatever it is not = since it is assigning a value, not stating a condition.Zange-chan
Much prefer. = is used for assigning values while == is a conditional operator which means is equal to. Never confuse on the equal signs.Zange-chan
Wonderful, thanks for the help!Hugh Fox
I posted my answer. I would appreciate it if you up vote and accept my answer if it helps you. :)Zange-chan

1 Answers

0
votes
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.