为了账号安全,请及时绑定邮箱和手机立即绑定

将 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 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信