0

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

Community
  • 1
  • 1
Hugh Fox
  • 3
  • 2

1 Answers1

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

Cookie Ninja
  • 1,156
  • 15
  • 29
  • I have attempted to use this code, however no items are being added into my array whilst this runs. When using "print_r($arr)" it returns an empty array; IE "Array ( )". I have tried using array_push to no avail. – Hugh Fox Jul 16 '16 at 09:07
  • so I have answered my own query, I changed the for loop to a do-while loop. While $i < $ number it runs through the if statements I have set up! – Hugh Fox Jul 16 '16 at 09:14