在 CodeIgniter 中将数组传递给系统核心 Controller.php
Pass an array to the system core Controller.php in CodeIgniter
我正在将我的 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 中的核心系统控制器?
既然您已将函数移动到 class 中,您将需要在从其内部调用函数时使用 $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
将您的原始方法添加到文件中。
Auto-load 在系统初始化的时候。这是通过打开 application/config/autoload.php
文件并将助手添加到自动加载数组来完成的。
在您的应用程序中的任何位置使用它:
我正在将我的 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 中的核心系统控制器?
既然您已将函数移动到 class 中,您将需要在从其内部调用函数时使用 $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
将您的原始方法添加到文件中。
Auto-load 在系统初始化的时候。这是通过打开
application/config/autoload.php
文件并将助手添加到自动加载数组来完成的。在您的应用程序中的任何位置使用它: