Hen*_*son 0 php string warnings
我今天升级到PHP 5.4,我收到一些奇怪的警告:
Warning: Illegal string offset 'quote1' in file.php on line 110
Warning: Illegal string offset 'quote1_title' in file.php on line 111
Run Code Online (Sandbox Code Playgroud)
这些行是代码的这一部分:
for($i = 0; $i < 3; $i++) {
$tmp_url = $meta['quote'. ($i+1)];
$tmp_title = $meta['quote' . ($i+1) .'_title'];
if(!empty($tmp_url) || !empty($tmp_title)) {
$quotes[$src_cnt] = array();
$quotes[$src_cnt]['url'] = $tmp_url;
$quotes[$src_cnt]['title'] = $tmp_title;
$src_cnt++;
}
}
Run Code Online (Sandbox Code Playgroud)
所以$tmp_url和$tmp_title行.
为什么我收到这个奇怪的警告,解决方案是什么?
更新:
此代码用作Wordpress插件.$ meta包括:
$meta = get_post_meta($post->ID,'_quote_source',TRUE);
Run Code Online (Sandbox Code Playgroud)
所以我怀疑只要引号字段为空,就会出现此警告.当字段为空时,有什么方法可以解决这个问题吗?
你需要确保,这$meta实际上是类型数组.警告明确告诉你,这$meta似乎是一个string 而不是一个array
Illegal string offset
^^^^^^
Run Code Online (Sandbox Code Playgroud)
为避免此错误,您还可以检查所需的字段
for($i = 0; $i < 3; $i++) {
if ( !is_array($meta) || !array_key_exists('quote'. ($i+1), $meta) ){
continue;
}
// your code
}
Run Code Online (Sandbox Code Playgroud)