Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.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 in_数组函数失败_Php_Arrays_Warnings - Fatal编程技术网

Php in_数组函数失败

Php in_数组函数失败,php,arrays,warnings,Php,Arrays,Warnings,我在用这句话: '.((isset($imgRight) && in_array(1, $imgRight)) ? 'checked="checked"' : '').' 而且,在某些情况下,$imgRight可以是false。这就是为什么有isset(),但它仍然失败 我需要做些什么来避免此警告?仅仅因为某个内容是false并不意味着它没有设置: $foo = false; isset($foo); //true 您只需使用: ($imgRight && i

我在用这句话:

'.((isset($imgRight) && in_array(1, $imgRight)) ? 'checked="checked"' : '').'
而且,在某些情况下,
$imgRight
可以是false。这就是为什么有
isset()
,但它仍然失败


我需要做些什么来避免此警告?

仅仅因为某个内容是
false
并不意味着它没有设置:

$foo = false;
isset($foo); //true
您只需使用:

($imgRight && in_array(1, $imgRight)) ? 'checked="checked"' : '')
或者为了非常安全(如果imgRgiht可能为null,或者某个非数组的非假值):


仅因为某个内容为
false
并不意味着它未设置:

$foo = false;
isset($foo); //true
您只需使用:

($imgRight && in_array(1, $imgRight)) ? 'checked="checked"' : '')
或者为了非常安全(如果imgRgiht可能为null,或者某个非数组的非假值):


$imgRight
如果为false,将通过
isset()

$imgRight
如果为false,将通过
isset()

isset($imgRight)
更改为
is\u数组($imgRight)
。我假设复选框的值使用数组表示法作为其值。

isset($imgRight)
更改为
is\u array($imgRight)
。我假设复选框的值使用数组表示法作为其值。

首先,不要使用短标记,它很快就会被弃用! 但对于您的问题:您需要检查$imgRight的状态,而不是它的存在(isset)!您也可以在此处设置一些代码的快捷方式…在使用它之前,您还应该检查它是否存在:

if (isset($imgRight)) {
   if ($imgRight != false && in_array(1, $imgRight)) { 
      $chk =  'checked="checked"' } 
   else { $chk = '';}
}
在复选框元素中,只需执行以下操作

echo $chk;

首先,不要使用短标记,它很快就会被弃用! 但对于您的问题:您需要检查$imgRight的状态,而不是它的存在(isset)!您也可以在此处设置一些代码的快捷方式…在使用它之前,您还应该检查它是否存在:

if (isset($imgRight)) {
   if ($imgRight != false && in_array(1, $imgRight)) { 
      $chk =  'checked="checked"' } 
   else { $chk = '';}
}
在复选框元素中,只需执行以下操作

echo $chk;

尝试搜索短标记(不是短代码,很抱歉)和不推荐的,您将看到。我知道这并不是百分之百的真实,因为这只是开发团队的一个想法,他们决定暂时不这么做!但有一天可能会发生……如果你做进一步的研究,你还会发现没有其他理由不使用它们——例如,啊,是的,有人谈论过这一点。我以为你指的是三元运算符,因为OP的问题中没有短标记。尝试搜索短标记(不是短代码,很抱歉)并弃用,你会看到。我知道这并不是百分之百的真实,因为这只是开发团队的一个想法,他们决定暂时不这么做!但有一天可能会发生……如果你做进一步的研究,你还会发现没有其他理由不使用它们——例如,啊,是的,有人谈论过这一点。我以为你指的是三元运算符,因为OP的问题中没有短标记。