在 PHP 7.4 中报错:Illegal offset type in isset or empty
1、在 PHP 7.4 中报错:Illegal offset type in isset or empty。如图12、代码如下:3、打印 $setting,其值为对象。如图24、将 $setting[‘settingId’] 转为 字符串。5、打印转换后的字符串值如下6、不再报错。
{
"errors": [
{
"debugMessage": "Illegal offset type in isset or empty",
"message": "Internal server error",
"extensions": {
"category": "internal"
},
"locations": [
{
"line": 3,
"column": 5
}
],
"path": [
"onlineStore",
"theme"
],
"trace": []
}
],
"data": {
"onlineStore": {
"theme": null,
"__typename": "OnlineStore"
},
"__typename": "Query"
}
}
if (isset($setting['settingId']) && isset($currentSettings[$setting['settingId']])) {
$setting = $setting + [
'value' => $currentSettings[$setting['settingId']],
];
}
Array
(
[info] => 轮播图标题、模块标题、商品的标题等
[label] =>
[type] => HEADER
[default] =>
[content] => 标题
[id] => Modules\OnlineStoreThemeGraphQL\Resolver\Id Object
(
[prefixes:protected] => Array
(
[0] => 96b1c8b9-5b18-4760-9e26-50ab009ac011
[1] => settings
[2] => 0
)
)
[__typename] => ThemeSettingHeader
[settingId] => Modules\OnlineStoreThemeGraphQL\Resolver\Id Object
(
[prefixes:protected] => Array
(
[0] => 96b1c8b9-5b18-4760-9e26-50ab009ac011
[1] => settings
[2] => 0
)
)
)
$settingId = isset($setting['settingId']) ? (string) $setting['settingId'] : null;
// 获取当前设置值
if (isset($settingId) && isset($currentSettings[$settingId])) {
$setting = $setting + [
'value' => $currentSettings[$setting['settingId']],
];
}
96b1c8b9-5b18-4760-9e26-50ab009ac011/settings/0

