猿问

PHP 使用 isset 函数崩溃

我的代码有问题。我曾经有“未定义的偏移量:1”错误,所以我使用 isset 函数来检查数组是否存在。但是提交后,网络服务器崩溃了(我肯定是因为这个问题遇到了这个问题)


PHP代码


if ($instancenameNarr !== null && $instancenameVarr !== null && $instancenameOarr !== null) {

            for ($i = 0; $i < $input['standardpartitionsN']; $i++) {

                $standardpartitions = new StandardPartition;


if (isset($input['mounpointstandardpartitionsN'][$i])) {

    $standardpartitions->mountpointstd = $input['mounpointstandardpartitionsN'][$i--];


}


if (isset($input['sizestandardpartitionsN'][$i])) {

    $standardpartitions->sizestd = $input['sizestandardpartitionsN'][$i--];

}


                $standardpartitions->save();

HTML


<select class="form-control"  name='mounpointstandardpartitionsN[]'  id='mounpointstandardpartitionsN' >

等等......问题是什么家伙?谢谢


三国纷争
浏览 180回答 3
3回答

FFIVE

每次设置 $i-- 您的 'for' 都会后退一步,并永远循环。尝试 $i - 1 但再次测试它是否存在if (isset($input['mounpointstandardpartitionsN'][$i])) {&nbsp;if (isset($input['mounpointstandardpartitionsN'][$i - 1])) {&nbsp; &nbsp; $standardpartitions->mountpointstd = $input['mounpointstandardpartitionsN'][$i - 1];&nbsp;}}你也必须检查它是否是第一次迭代

白猪掌柜的

通过申请解决count($input[...][$i])等等。Count() 救了我

胡子哥哥

您应该先检查mounpointstandardpartitionsN,然后检查$i如下:<?php&nbsp;if ($instancenameNarr !== null && $instancenameVarr !== null && $instancenameOarr !== null) {&nbsp; &nbsp; for ($i = 0; $i < $input['standardpartitionsN']; $i++) {&nbsp; &nbsp; &nbsp; &nbsp; $standardpartitions = new StandardPartition;if (isset($input['mounpointstandardpartitionsN']) && isset($input['mounpointstandardpartitionsN'][$i])) {&nbsp; &nbsp; $standardpartitions->mountpointstd = $input['mounpointstandardpartitionsN'][$i--];}if (isset($input['sizestandardpartitionsN']) && isset($input['sizestandardpartitionsN'][$i])) {&nbsp; &nbsp; $standardpartitions->sizestd = $input['sizestandardpartitionsN'][$i--];}$standardpartitions->save();这将首先检查是否$input已经mounpointstandardpartitionsN设置,如果是,那么它会检查是否$input['mounpointstandardpartitionsN']有$i在里面。希望对你有帮助
随时随地看视频慕课网APP
我要回答