我有这样的位的代码:array_key_exists()预计参数2为阵列,串给出
if(array_key_exists('customtextcolor',$atts)){
// If in array, then check if none, if not none, add to CSS classes
if ('none' !== $atts['customtextcolor']) {
$custstyles[] = $atts['customtextcolor'];
}
}
这是对线90,以及我的php.log示出了线90
错误Apr 2 08:46:16 #####。net ool www:PHP警告:array_key_exists()期望参数2是数组,字符串在/ var/www/####/wp-内容/插件/ Fusion-Builder-Custom-Text-For-HP/fusion-builder-custom-text-for-hp.php on line 90
我认为这很奇怪,因为我确定它是一个数组,因为代码按预期工作。我也用echo gettype($atts);
,它返回一个数组。当我var_dump($atts);
它呈现整个阵列。
任何想法php.log显示此错误消息?
如果$atts
是一个字符串,为什么gettype()
将它识别为数组?为什么var_dump()
将其渲染为数组?
我已经看过其他array_key_exists()
关于StackOverflow的问题,但他们并不是同样的问题,据我所知。
正如错误提示,'$ atts'是一个'string'而不是'array' .... – Nytrix
嗨@nytrix这就是为什么我使用gettype()和var_dump()来验证,$ atts是一个数组。除非它始终改变类型 - 这很奇怪。 – InsuredApple
必须有一些情况导致一个字符串至少在一次调用中被写入'$ atts'。除了更深入的'varr_dump()'以外,没有什么可以缩小这种情况发生的时间和方式。 PHP绝对不会产生该错误,除非在执行时'$ atts'确实不是一个数组。 –