2016-01-25 40 views
0

所以循环不打印,我不明白为什么?我只是一个初学者,所以我很困惑它为什么不起作用。如果你们可以解释它背后的原因,那太棒了。用于循环的PHP函数。不打印循环

<html> 
<body> 
<?php 

$numbers = array(4,6,2,22,11); 
sort($numbers); 

function printarray($numbers, $x) { 
    $countarray = count($numbers); 
    for($x = 0; $x < $countarray; $x++) { 
     echo $numbers[$x]; 
     echo "<br>"; 
    }  
} 

printarray(); 

?> 
</body> 
</html> 
+1

查看可变范围http://php.net/manual/en/language.variables.scope.php。您未通过'$ numbers' .. – chris85

+0

另一个可以通过介绍性教程解决的问题... –

+1

[PHP变量作用域]的可能重复(http://stackoverflow.com/questions/1781780/php-可变范围),或者http://stackoverflow.com/questions/16959576/reference-what-is-variable-scope-which-variables-are-accessible-from-where-and。 – chris85

回答

1

您需要将您的变量添加到您的函数:

printarray($numbers); 

为正在创建,并在函数本身毁坏了它,您还可以从功能删除$ X。

0

由于您是初学者,您可能有兴趣了解foreach。你可以用它来大大简化,像这样的功能:

<?php 
$numbers = array(4,6,2,22,11); 
sort($numbers); 

function printArray($nums) { 
    foreach($nums as $num) { 
     echo $num; 
     echo "<br>"; 
    }  
} 

printArray($numbers); 

实验通过:https://3v4l.org/1BtkK

一旦你习惯使用foreach,看看array_maparray_filter,并array_reduce的方式来简化代码更多。

<?php 
$numbers = array(4,6,2,22,11); 
$sort($numbers); 

function printArray($nums) { 
    array_reduce($nums, function ($carry, $item) { 
     echo $carry .= $item . "<br>"; 
    }); 
} 

printArray($numbers); 

实验通过:https://3v4l.org/4JJFL

而且因为你是一个初学者,检查了PHP The Right Way和实践。一旦你获得了经验,再次检查PHP正确的方法并且再练习一些。然后再次。然后再次。