3

大規模な検索を行ったところ、次のことがわかりました。

&__get() の問題、再び。大きな欲求不満が進行中です

ただし、提供されている例はどれも実際には機能しません。

多次元配列である変数を持つオブジェクトがあります。その配列のキーの値を変更する必要があります。

例:

foreach ($code->files as $index => $value)
{
    if (strcmp($code->files[$index]['id'], $fileid) == 0)
    {                               
        $code->files[$index]['title'] = "Test";
        $code->save();  
    }
}

上記のコードはエラーを生成します:

Notice: Indirect modification of overloaded property CodeDocument::$files has no effect in /var/www/deletefile.php on line 57 

以前に参照したスレッド リンクのすべての例を試しましたが、どれも機能しません。それらはすべて上記のエラーを生成します。

ビルド済みのクラス ライブラリ (phpillow) を使用していますが、__get 関数を &__get に変更しようとすると、上記のエラーは抑制されますが、変更しようとしている変数はまだ新しい値を取得しません。

これが正しいかどうかはわかりませんが、完全に途方に暮れています。クラス変数として配列を配置せずにこれを行うには、可能な限り避けたいリファクタリングがたくさん必要になります。

どんな助けでも大歓迎です。

4

1 に答える 1

0

これは機能しますか:

foreach ($code->files as $index => $value)
{
    if (strcmp($value['id'], $fileid) == 0)
    {                               
       $value['title'] = "Test";
       $code->save();  
    }
}
于 2012-08-30T07:39:49.590 に答える