我的主页上有一个奇怪的(至少对我而言)错误:
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'] = "";
}
答案 0 :(得分:0)
警告表示没有:
$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'] = "";
}
答案 1 :(得分:0)
这个错误说的是什么?
Warning: Illegal string offset 'en'
您正在尝试使用offest 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'];
}