我正在将我的CodeIgniter应用程序从2.x版本更新到3.1。以前,我曾经调用此函数来计算传入数组中非零数字的数量:
function getCountOfNonZero($array, $d) {
$NonZeroCount = 0;
foreach($array as $key=>$value) {
if(is_array($value)) {
$d = $key;
$NonZeroCount += getCountOfNonZero($value, $d); }
else {
if($value<>0 & $key<>'RES') {
$NonZeroCount++;
}
}
}
return $NonZeroCount;
}
现在,我尝试在CodeIgniter的3.1版中调用此函数,但出现错误。这就是我调用该函数的方式:
echo "Count of non-zero is: ".$controller->getCountOfNonZero($myArray);
与众不同的是,该函数位于system\core\Controller.php
中,但是每当我调用该函数并尝试传递该数组时,都会返回错误。
我为什么不能将数组传递给CodeIgniter中的核心系统控制器?
答案 0 :(得分:0)
现在您已将函数移到一个类中,从内部调用该函数时将需要使用$this->getCountOfNonZero($value, $d);
。
function getCountOfNonZero($array, $d) {
$NonZeroCount = 0;
foreach($array as $key=>$value) {
if(is_array($value)) {
$d = $key;
$NonZeroCount += $this->getCountOfNonZero($value, $d); }
else {
if($value<>0 & $key<>'RES') {
$NonZeroCount++;
}
}
}
return $NonZeroCount;
}
我个人可能只是将方法放入helper文件中并自动加载,而不是将其绑定到核心控制器。
创建助手方法:
application/helpers/MY_array_helper.php
将原始方法添加到文件中。
在系统初始化期间自动加载。这是通过打开application/config/autoload.php
文件并将帮助程序添加到自动加载数组来完成的。
在应用程序中的任何位置使用它: