Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在$this之后终止控制器的执行->;负载->;代码点火器视图_Php_Codeigniter - Fatal编程技术网

Php 在$this之后终止控制器的执行->;负载->;代码点火器视图

Php 在$this之后终止控制器的执行->;负载->;代码点火器视图,php,codeigniter,Php,Codeigniter,您好,我正在为站点使用codeigniter,我正在通过php页面中的表单调用控制器中的函数。函数调用为: Gear.php: foreach ($gearArray as $key => $value) { echo '<tr><td><img id="leftimg" src="'.base_url().''.$value["Product_Image_URL"].'"></td>';

您好,我正在为站点使用codeigniter,我正在通过php页面中的表单调用控制器中的函数。函数调用为:

Gear.php:

foreach ($gearArray as $key => $value) {

                echo '<tr><td><img id="leftimg" src="'.base_url().''.$value["Product_Image_URL"].'"></td>';
                echo '<td>'.$value["Description"].'';
                echo '<form method="post" id="addtocart" action="'.site_url('GearController/addorUpdate').'">';
                echo '<input type="hidden" name="desc1" value="'.$value["Name"].'">';
                echo '<input type="hidden" name="cost1" value="'.$value["Price"].'">';
                echo '<input type="submit" value="Add To Cart">';
                echo '</form></td>';
            }
            echo '</table>';
            ?>
这里的问题是,一切正常,页面被重定向,但几秒钟内它就会显示一个空白屏幕。我试着返回、死亡和退出。这些都没用。控制器似乎正在$this->load->view下执行代码。我这样说是因为我以前在

如果($boolean==TRUE){ $this->updateCart($Description)


该特定代码是在重定向后执行的。请有人帮忙吗?

这听起来像是在视图文件的开头有一个叫做
BOM
的字符。这个字符通常是不可见的。请确保开头没有(显然)黑色字符


您还可以通过临时将此代码作为函数
echo的第一行来测试
updateCart($Description)
是否正在运行“这是updateCart;
然后注释掉该函数中的所有其他代码。如果您在屏幕上看到该文本,您就知道该函数正在运行。

这并没有回答您的问题,但它让我感到很不安,所以

而不是这一团糟

foreach ($data['cartArray'] as $value) {

    if($Description==$value['Description']){
        $boolean = TRUE;
    }

}
if($boolean==TRUE){
    $this->updateCart($Description);
}
你可以这么做

if(in_array( $Description, array_column($data['cartArray'],'Description'))){
   $this->updateCart($Description);
}
您可以使用此代码(实体模型)对其进行测试

输出

 found
在这里测试一下


我认为数组中的
是不言而喻的,但这里有一个非常有用且经常被忽略的地方。

我尝试了返回、死亡和退出。
PHP在遇到任何一个问题后都无法执行代码,你的问题就在这些问题之前。PHP只是不做它想做的事情,而是做你告诉它的事情。你的foreach中的逻辑是al所以有缺陷,或者更好,你可以在找到你的条件的第一个真值后打破它。还有一个小提示是,当检查常量时,最好将它们放在左边
if(真==$boolean)
这会阻止赋值,因为您不能将true赋值给可以赋值的
$boolean
,但是在这种情况下,如果($boolean),我只会赋值
这相当于您正在检查的内容。这些都不能解决您的问题,但我想我会分享我的智慧。您也可以在记事本++中打开它,然后检查它的编码方式。我讨厌那些BOM内容

if(in_array( $Description, array_column($data['cartArray'],'Description'))){
   $this->updateCart($Description);
}
$Description = 'foo';

$data = ['cartArray' => [
        ['Description' => 'foo'],
        ['Description' => 'bar'],
    ]
];

if(in_array( $Description, array_column($data['cartArray'],'Description'))){
   echo "found";
}
 found