我有这个代码(下面)运行得很好,但每当我试图将它"包装"到函数中时,例如function systemLoop($series) { ... }
,我只会失败。
我是PHP(以及这个级别的编码)和多维数组的新手。因此,让它作为一个函数工作对我来说更为陌生。然而,由于我有"几个"系统系列数组要处理,我认为把它放在函数中可能是一个更好的解决方案。所以我所要做的就是调用systemLoop("hyper"); systemLoop("business");
你能帮忙吗?我试着把它变成一个函数,这样做对吗?如果我采取了正确的步骤,那么我是否排除了使功能按预期工作的可能步骤?
$series = "super";
foreach ( $systems[$series] as $names => $name ) {
echo "<ul>";
if (is_array($name)){
echo "<h2>$names => $name</h2>";
foreach( $systems[$series][$names] as $details => $detail ){
if (is_array($detail)){}else{
echo "<h3>$details => $detail</h3>";
}
}
foreach( $systems[$series][$names]['components'] as $components => $component ){
if(is_array($component)){
foreach( $systems[$series][$names]['components']['cpu'] as $part => $specs ){
echo "<li>cpu $part => $specs</li>";
}//ends foreach
}else{
echo "<li>$components => $component</li>";
}//ends if is_array
}// ends foreach
}else{
echo "<li>$name</li>";
}//ends if is_array
echo "</ul>";
echo "<hr/>";
}//ends foreach
听起来,在函数中封装它的问题来自于没有传递$systems变量,您可以在函数调用中作为全局变量或参数来传递该变量。我将在这里展示两个例子:
传递$系统作为参数:
function systemLoop($series, $systems){
你会这样称呼它:
systemLoop('super', $systems);
或者通过$系统作为全局:
function systemLoop($series){
global $systems;
然后你会调用这样的函数:
systemLoop('super');
从问题听起来可能是什么,任何一种方式都应该解决你的问题。