警告:非法字符串偏移 'en'
Warning: Illegal string offset 'en'
我的主页上出现了一个奇怪的(至少对我来说)错误:
Warning: Illegal string offset 'en'
这是代码,请帮忙:
if (isset($s['target_data']['description']) && $s['target_data']['description']){
if (isset($s['target_data']['description'][$lang])){
$s['target_data']['description'] = $s['target_data']['description'][$lang];
} else {
$s['target_data']['description'] = $s['target_data']['description']['en'];
}
} else {
$s['target_data']['description'] = "";
}
警告表示没有:
$s['target_data']['description']['en']
在你的数组中设置。
您可以添加简单的检查来修复它:
<?php
if (isset($s['target_data']['description'])
&& $s['target_data']['description']
) {
if (isset($s['target_data']['description'][$lang])) {
$s['target_data']['description']
= $s['target_data']['description'][$lang];
} elseif (isset($s['target_data']['description']['en'])) { // here one more check added
$s['target_data']['description']
= $s['target_data']['description']['en'];
}
else { // nothing set
$s['target_data']['description'] = '';
}
} else {
$s['target_data']['description'] = "";
}
该错误说明了什么?
Warning: Illegal string offset 'en'
您正在尝试访问最偏移 en
的字符串。就像您访问数组一样。除非字符串不支持命名键...
我假设您期望 $s['target_data']['description']
是一个数组。尝试检查一下,看看密钥是否存在:
// THIS:
//
// } else {
// $s['target_data']['description'] = $s['target_data']['description']['en'];
// }
//
// BECOMES:
//
elseif (is_array($s['target_data']['description']) && $s['target_data']['description']['en']) {
$s['target_data']['description'] = $s['target_data']['description']['en'];
}
我的主页上出现了一个奇怪的(至少对我来说)错误:
Warning: Illegal string offset 'en'
这是代码,请帮忙:
if (isset($s['target_data']['description']) && $s['target_data']['description']){
if (isset($s['target_data']['description'][$lang])){
$s['target_data']['description'] = $s['target_data']['description'][$lang];
} else {
$s['target_data']['description'] = $s['target_data']['description']['en'];
}
} else {
$s['target_data']['description'] = "";
}
警告表示没有:
$s['target_data']['description']['en']
在你的数组中设置。
您可以添加简单的检查来修复它:
<?php
if (isset($s['target_data']['description'])
&& $s['target_data']['description']
) {
if (isset($s['target_data']['description'][$lang])) {
$s['target_data']['description']
= $s['target_data']['description'][$lang];
} elseif (isset($s['target_data']['description']['en'])) { // here one more check added
$s['target_data']['description']
= $s['target_data']['description']['en'];
}
else { // nothing set
$s['target_data']['description'] = '';
}
} else {
$s['target_data']['description'] = "";
}
该错误说明了什么?
Warning: Illegal string offset 'en'
您正在尝试访问最偏移 en
的字符串。就像您访问数组一样。除非字符串不支持命名键...
我假设您期望 $s['target_data']['description']
是一个数组。尝试检查一下,看看密钥是否存在:
// THIS:
//
// } else {
// $s['target_data']['description'] = $s['target_data']['description']['en'];
// }
//
// BECOMES:
//
elseif (is_array($s['target_data']['description']) && $s['target_data']['description']['en']) {
$s['target_data']['description'] = $s['target_data']['description']['en'];
}