2016-04-03 84 views
0

我試圖創建一個函數,將打印創建函數接受整數值和函數將返回id輸入值是1然後打印1其他2打印1,3其他3打印1,3,5在php

function show($num){ 
$arr = array(1); $num1 = 0; 
for($i=1;$i<=count($num);$i++){ 
    if($i % 2 == 0){ 
     $num1 = $i++; 
    } 
    $i--; 
    array_push($arr, $num1); 
} 

return (implode(',',$arr)); 
} 

它顯示錯誤 致命錯誤:用盡134217728個字節允許存儲器大小(試圖分配100663304個字節)

+0

那麼問題是什麼? – Mureinik

+0

可能是我做了錯誤的代碼,所以你可以請幫助創建功能,這使我輸出我解釋的問題。 –

+0

您將'$ i'作爲'for'循環的一部分遞增;但在循環內再次遞減,所以循環永遠不會終止;因此出現了內存不足的例外。 – andrewsi

回答

1

嘗試這種情況:

function show($num){ 
    $i = 1; 
    $count = 0; 
    $numbers = array(); 
    while($i > 0) { 
     if ($count == $num) { 
      break; 
     } 
     $numbers[] = $i; 
     $i += 2; 
     $count++; 
    } 
    return implode(",", $numbers); 
} 

回波顯示(3); // Prints 1,3,5

echo show(7); //打印1,3,5,7,9,11,13

希望這會有所幫助。

+0

是的,這正是我所想要的。非常感謝合作。 –

+0

@ObjectManipulator,'$ numbers'未定義? – RomanPerekhrest

+0

它不應該給這個消息,除非你指定了echo show(0);在這種情況下,聲明$ numbers = array();在循環之前! –