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

次の 2 つの場合:

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

変数$valueは配列ではなく文字列です。そして、角括弧は部分文字列アクセスです。文字列が空であるため、エラー メッセージが表示されます。

デモ: http://codepad.org/UDMtuO2x

于 2012-08-30T07:07:38.160 に答える
2

[] は $$ よりも強力にバインドされます。つまり、php は最初に評価$value['id']し、次にこの値を変数 variable の名前/識別子として使用します。
中括弧を使用して優先順位を変更します。

<?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 に答える