首页 >后端开发 >php教程 >thinkPHP 微信公众号开发,关键字回复使用switch出错

thinkPHP 微信公众号开发,关键字回复使用switch出错

WBOY
WBOY原创
2016-09-24 09:15:101704浏览

使用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></tousername>
                        <fromusername></fromusername>
                        <createtime>%s</createtime>
                        <msgtype></msgtype>
                        <content></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></tousername>
                        <fromusername></fromusername>
                        <createtime>%s</createtime>
                        <msgtype></msgtype>
                        <content></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