Als ich PHP zur Entwicklung der öffentlichen WeChat-Plattform verwendete, stieß ich auf ein Problem bei der Durchführung von Schlüsselwortantworten und verwendete if. Es gibt kein Problem mit der else if-Anweisung, aber wenn sie auf „switch“ umgestellt wird, kann die öffentliche Plattform beim Ändern der Konfiguration nicht übermittelt werden. Ist jemand auf diese Situation gestoßen?
Hier ist der Code:
<code> if (strtolower( $postObj->MsgType ) == 'text') { switch ( trim($postObj->Content )) { case '电影': $contnet = '最近都没有看过什么电影,真的是没有什么时间啊。'; break; case '菜': $content = '最喜欢吃红烧肉了,真心不喜欢那些都是骨头和皮没有肉的荤菜。'; break; case '饮料': $content = '柠檬水,我感觉我对柠檬水上瘾了。' break; default: $content = '这不是我们设置的关键字,你再看看?'; break; } $toUser = $postObj->FromUserName; $fromUser = $postObj->ToUserName; $time = time(); $msgType = 'text'; $template = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> </xml>"; $info = sprintf($template, $toUser, $fromUser, $time, $msgType, $content); echo $info; } </code>
Als ich PHP zur Entwicklung der öffentlichen WeChat-Plattform verwendete, stieß ich auf ein Problem bei der Durchführung von Schlüsselwortantworten und verwendete if. Es gibt kein Problem mit der else if-Anweisung, aber wenn sie auf „switch“ umgestellt wird, kann die öffentliche Plattform beim Ändern der Konfiguration nicht übermittelt werden. Ist jemand auf diese Situation gestoßen?
Hier ist der Code:
<code> if (strtolower( $postObj->MsgType ) == 'text') { switch ( trim($postObj->Content )) { case '电影': $contnet = '最近都没有看过什么电影,真的是没有什么时间啊。'; break; case '菜': $content = '最喜欢吃红烧肉了,真心不喜欢那些都是骨头和皮没有肉的荤菜。'; break; case '饮料': $content = '柠檬水,我感觉我对柠檬水上瘾了。' break; default: $content = '这不是我们设置的关键字,你再看看?'; break; } $toUser = $postObj->FromUserName; $fromUser = $postObj->ToUserName; $time = time(); $msgType = 'text'; $template = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> </xml>"; $info = sprintf($template, $toUser, $fromUser, $time, $msgType, $content); echo $info; } </code>
Semikolon fehlt
<code>case '饮料': $content = '柠檬水,我感觉我对柠檬水上瘾了。' break;</code>
Wenn ein solches Problem auftritt, wird normalerweise ein Syntaxfehler angezeigt. Schreiben Sie den Code sorgfältig und sorgfältig, beeilen Sie sich nicht.
Syntaxfehler sind leicht zu finden. Lesen Sie die Fehlermeldung sorgfältig durch.
Zuerst. Fromuser und touser verwenden die umgekehrte
Sekunde. Logisches Semikolon