0

此错误出现在 index.php 文件中

警告:非法字符串偏移 'id' 警告:非法字符串偏移 'std'

<?php
    global $options;
    foreach ($options as $value) {
        if (get_settings( $value['id'] ) === FALSE) {
            $$value['id'] = $value['std']; 
        } else {    
            $$value['id'] = get_settings( $value['id'] ); 
        }
    }

尝试在 Wordpress 中加载新主题时出现此问题...

4

3 回答 3

5

对于以下两件事:

$value['id']
$value['std']

变量$value不是数组而是字符串。然后方括号是子字符串访问。因为字符串为空,您会收到错误消息。

演示:http ://codepad.org/UDMtuO2x

于 2012-08-30T07:07:38.160 回答
2

[] 比 $$ 绑定更强,即 php 首先计算$value['id'],然后将这个值用作变量变量的名称/标识符。
使用花括号更改优先级。

<?php
$array = array('id'=>123);
$value = 'array';
echo ${$value}['id'];

打印123

于 2012-08-30T07:06:23.913 回答
0

除非我们知道$options所持有的模式,否则很难说。尝试

$value->id代替$value["id"]

于 2012-08-30T07:04:01.423 回答