国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHP 8.1中DOMDocument序列化
P粉891237912
P粉891237912 2024-01-16 11:19:03
0
1
714

我正在嘗試讓以下類別與本機 PHP 序列化相容,特別是在 PHP 8.1 上執(zhí)行時。

class SerializableDomDocument extends DOMDocument
{
    private $xmlData;

    public function __sleep(): array
    {
        $this->xmlData = $this->saveXML();
        return ['xmlData'];
    }

    public function __wakeup(): void
    {
        $this->loadXML($this->xmlData);
    }
}

在較低的PHP 版本上一切都很好,但8.1 會產(chǎn)生未捕獲的異常:'SerializedDomDocument' 的序列化不允許 每當嘗試將此類物件傳遞給 serialize() 函數(shù)時。以下是會產(chǎn)生此類異常的程式碼範例:https://3v4l.org/m8sgc。

我知道 PHP 7.4 中引入的 __serialize() / __unserialize() 方法,但使用它們似乎也沒幫助。以下程式碼段會導(dǎo)致與此處觀察到的相同異常:https://3v4l.org/ZU0P3。

class SerializableDomDocument extends DOMDocument
{
    public function __serialize(): array
    {
        return ['xmlData' => $this->saveXML()];
    }

    public function __unserialize(array $data): void
    {
        $this->loadXML($data['xmlData']);
    }
}

我對這個問題感到非常困惑,並且非常感謝任何提示。目前看來,唯一的前進方向是引入明確規(guī)範化器/反規(guī)範化器,這將導(dǎo)致程式碼庫 API 發(fā)生重大變化。我想避免這種情況。

P粉891237912
P粉891237912

全部回覆(1)
P粉041881924

2021 年 8 月 10 日,此變更已提交至版本 8.1 RC1:

將 DOM 類別標記為不可序列化

因此您無法再序列化這些類別。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板