亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 SimpleXMLElement 參數保存到全局變量

將 SimpleXMLElement 參數保存到全局變量

PHP
拉丁的傳說 2023-07-15 18:25:43
我目前正在使用 Botman 框架讓我的機器人讀取 XML 文件。目前,我的機器人能夠從 XML 文件中獲取數據并將其輸出。我在將 XML 文件保存回全局變量時遇到問題(以便稍后可以在代碼中重用)。這是我嘗試執行此操作時收到的當前錯誤消息:"message": "Serialization of 'SimpleXMLElement' is not allowed","exception": "Exception","file": "C:\\Users\\Jack\\finalyearproject\\gfyp\\gfyp\\vendor\\opis\\closure\\src\\SerializableClosure.php    我這里遇到問題:public function nodeTest($xmlFile, $answer){    $this->XMLFile = $xmlFile;    ...}這是函數之前的類代碼:class StartConversation extends Conversation{    public $XMLFile;    ...    public function askForDatabase()    {        $question = Question::create('Test test test?')            ->fallback('Unable to create a new database')            ->callbackId('create_database')            ->addButtons([                Button::create('Suicide')->value('suic'),                Button::create('Self-harm')->value('sh'),            ]);        $this->ask($question, function (Answer $answer) {            $xmlResult = $this->testXMLGrabFunction($answer);            if ($answer->getValue() == 'suic') {                $this->nodeTest($xmlResult, $answer);            }            if ($answer->getValue() == 'sh') {                $this->nodeTest($xmlResult, $answer);            }        });    }}這是我最初獲取 XML 文件的類:class testClass{    function getXMLCategory($categoryName)    {        $xml = simplexml_load_file('ST-working-age-23-3-20.xml');        if($categoryName == 'suic')        {            $xml = $xml->node[0];            return $xml;        } elseif($categoryName == 'sh') {            $xml = $xml->node[1];            return $xml;        } else {            return null;        }    }}任何建議都會很棒 - 謝謝
查看完整描述

1 回答

?
www說

TA貢獻1775條經驗 獲得超8個贊

錯誤消息告訴您代碼中的某處正在嘗試序列化對象,即將其轉換為字符串表示形式。這可能在您正在使用的框架中,并且您所認為的“全局變量”實際上是以某種形式的會話存儲在請求之間,例如在磁盤上的文件中。

由于 SimpleXML 的實現方式,它不允許執行此操作。最簡單的解決方法是通過調用 來存儲 XML ->asXML(),然后在需要時使用 重新解析它simplexml_load_string()

您將希望盡可能少地進行往返,因此值得更好地了解框架實際上如何處理“全局變量”,以便您可以嘗試對每個請求執行一次。


查看完整回答
反對 回復 2023-07-15
  • 1 回答
  • 0 關注
  • 159 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號