Php 非法字符串偏移量搜索引擎优化

Php 非法字符串偏移量搜索引擎优化,php,arrays,string,Php,Arrays,String,我在这里读了一些书,但由于我是一个新手,我无法自行配置更改描述的内容,有人能帮我吗 我得到这个错误: 警告:第37行C:\xampp\htdocs\testdb1\wp content\themes\prospect\functions\meta-box.php中的非法字符串偏移量“seodescription” 第37行看起来像这样: echo htmlspecialchars( $data[ $meta_box[ 'name' ] ] ); 是什么对我不利?如果是,如何更改它们并保留$me

我在这里读了一些书,但由于我是一个新手,我无法自行配置更改描述的内容,有人能帮我吗

我得到这个错误:

警告:第37行C:\xampp\htdocs\testdb1\wp content\themes\prospect\functions\meta-box.php中的非法字符串偏移量“seodescription”

第37行看起来像这样:

echo htmlspecialchars( $data[ $meta_box[ 'name' ] ] );
是什么对我不利?如果是,如何更改它们并保留$meta_框定义?

在下一行:

$data[ $meta_box[ 'name' ] ]
看起来
$data
没有键
$meta\u框['name']
的值。确保您使用了正确的键,并确保已定义并可访问
$data

将上面的行替换为下面的行

$data[$meta_box['seodescription']['name']];
还有,当你打印数据时,你会得到什么?在第37行之前添加此打印语句。粘贴输出。

$data在脚本到达第37行时不是数组(显然是字符串)。
要测试这一点,请尝试以下操作

if ( !is_array($data) ) {
    echo '$data is not an array.';
    var_dump($data);
    die;
}
else if ( !isset($data[ $meta_box[ 'name' ] ]) ) {
    echo '$data doesn\'t have a key ', $meta_box[ 'name' ];
    die;
}
else {
    echo htmlspecialchars( $data[ $meta_box[ 'name' ] ] );
}

警告指的是
seodescription
,您包含的代码不包含该警告。实际涉及的行是什么?请用代码格式写那行。唯一的seodescription在第7行或smting的meta-box文件的开头,而不是37行?好的,$meta-box['name']无效,但$meta-box['seodescription']['name']有效。这将导致
未定义索引
警告,不是
非法字符串索引
对于这个愚蠢的问题,我真的很抱歉,但是我如何检查键的值以及它的定义?在metabox的前面?尝试回显$meta_box['name'],告诉我们您得到了什么,还尝试打印$data,比如print_r($data),并告诉我们您得到了什么。我是用这个替换原始代码,还是单独编写其他代码?如果更换,第一个仍然给我一个错误,你不必更换。在第37行之前写这两条语句,然后写die()结束脚本。在这里打印输出。