首頁 >後端開發 >php教程 >thinkPHP 微信公眾號開發,關鍵字回覆使用switch出錯

thinkPHP 微信公眾號開發,關鍵字回覆使用switch出錯

WBOY
WBOY原創
2016-09-24 09:15:101701瀏覽

使用php開發微信大眾平台,在做關鍵字回覆的時候遇到一個問題,使用if。 else if語句沒有問題,但是如果換成switch之後,公眾平台修改配置的時候就提交不過去了,請問大家有遇到過這種情況嗎?
下面是程式碼:

<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>

回覆內容:

使用php開發微信大眾平台,在做關鍵字回覆的時候遇到一個問題,使用if。 else if語句沒有問題,但是如果換成switch之後,公眾平台修改配置的時候就提交不過去了,請問大家有遇到過這種情況嗎?
下面是程式碼:

<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>

少了分號

<code>case '饮料':
                    $content = '柠檬水,我感觉我对柠檬水上瘾了。'
                    break;</code>

碰到這種問題,一般提示文法錯誤。寫程式認真仔細寫,不要捉急。

syntax error 是很好定位的。仔細閱讀報錯提示。

第一。 fromuser和touser用反
第二。邏輯分號

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn