【发布时间】:2019-06-06 01:08:45
【问题描述】:
我正在将我的 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 中的核心系统控制器?
【问题讨论】:
-
你说你收到一个错误?错误是什么?这种方法以前不在
system\core\Controller.php中吗?它在哪里?仅查看函数,它似乎不依赖于控制器中的任何内容,它可能作为辅助函数更好地工作。 -
感谢@Jeemusu 的评论。我得到的错误是关于 jQuery 中不匹配的标签。这可能是因为这个功能失败了。我想我可能需要阅读辅助函数,因为我对这些不太熟悉。首先,我将在下面尝试您的建议。
-
你修改了核心控制器?你应该永远这样做。但是,您可以在
application/core中创建一个核心控制器来扩展核心控制器。谷歌:MY_Controllercodeigniter -
@DanielAttard 您的代码还有另一个问题。方法第二个参数
$d是必需的,但您没有在示例用法中传递它。如果是可选参数,则需要在定义方法时指定:function getCountOfNonZero($array, $d = null) {
标签: php codeigniter codeigniter-3 codeigniter-2