2016-07-16 4 views
0

Ich lerne zZ php und kämpfe, um die Resultate einer Funktion zu einem Array zu schreiben. Nach einer Google-Suche scheint es, als die Funktion, die ich erstellt habe, hat einen Fehler in ihm, die ein Array schafft das ist zu groß:FATALER FEHLER: allozierte Bytes auf einfachem PHP-Skript

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

Wie ich schon sagte, bin ich zur Zeit PHP Lernen und die Ressourcen für ein benutzerdefiniertes geschriebenes Skript sind ziemlich begrenzt, daher frage ich, ob jemand so freundlich wäre, mir in der richtigen Richtung, um einen Stoß zu geben, wo Buggy mein Code ...

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 {} 
} 
} 

dies dies kehrt beim Zugriff auf Die Datei durch xampp, '$ Nummer' ist das Argument für die Funktion ...

'$ Nummer' eingegeben

Fatal error: Erlaubt Speichergröße von 134217728 Bytes erschöpft (36 Byte zuzuweisen versucht) in C: \ xampp \ htdocs \ Beurteilung \ one.php auf Leitung 12

+0

Ihr 'for loop' Zustand. Es sollte "<=" oder was auch immer nicht "=" sein, da es einen Wert zuweist, keine Bedingung angibt. –

+0

könnte ich == verwenden? –

+0

Viel lieber. '=' wird für die Zuweisung von Werten verwendet, während '==' ein Bedingungsoperator ist, was bedeutet, dass "gleich ist". Verwechsle niemals die Gleichheitszeichen. –

Antwort

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

Verwenden Sie == anstelle von =, da == ein bedingter Operator ist, während = einen Wert zuweist.

+0

Ich habe versucht, diesen Code zu verwenden, jedoch werden keine Elemente in mein Array hinzugefügt, während dies läuft. Bei Verwendung von "print_r ($ arr)" wird ein leeres Array zurückgegeben. IE "Array()". Ich habe versucht, array_push ohne Erfolg zu verwenden. –

+0

so habe ich meine eigene Abfrage beantwortet, habe ich die for-Schleife in eine Do-while-Schleife geändert. Während $ i <$ number läuft es durch die if-Anweisungen, die ich eingerichtet habe! –