为什么我打印不出来$res

为什么我打印不出来$res

并且$redis2->hSet($key,'score',$score);这个score的hash值也没有,应该哪里有一点小错误

<?php

//内容页的pv+1分,浏览时间超过5s+5分,不超过5s减1分,生成内容页的质量分

$redis = new Redis();
$redis->connect('127.0.0.1',6379);

//内容页pv
$channelPVArticle='pv:article';

//内容页浏览时间超过5s
$channelGT5='gt5:article';

$redis->setOption(Redis::OPT_READ_TIMEOUT,-1);

$redis->subscribe([$channelPVArticle,$channelGT5],
   function(Redis $instance,$channel,$message){
       //计算质量分 gt5 * 6
       //hash值保存
       $redis2=new Redis();
       $redis2->connect('127.0.0.1',6379);
       if('gt5:article'==$channel){
           echo "{$channel}\n";
           $key="realtimescore:".intval($message);
           $res = $redis2->hIncrBy($key,'gt5',1);
           echo "{$res}\n";
           if(!$res){
               $score=$res*6;
               echo "{$score}\n";
               $redis2->hSet($key,'score',$score);
           }else{
               //报警
           }
       }
});

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

您好,if判断$res的条件错误导致没有执行if区间,所以没有输出值。修改如下:

if($res){
    $score=$res*6;
    echo "{$score}\n";
    $redis2->hSet($key,'score',$score);
}else{
    //报警
}

祝学习愉快!

好帮手慕查理 2019-10-16 10:28:42

您好,请反馈一下完整的代码以便测试代码。或者将代码放入源码中测试,是否能够输出$res.

祝学习愉快!

  • 提问者 慕仙0328516 #1
    其他的你可以用课件中的源码,只有这个是我写的,我要测试的只是这个文件,那为什么我的key,value都有值了,只有score不行
    2019-10-16 12:03:09
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP典型功能与Laravel5框架开发
  • 参与学习           人
  • 解答问题       721    个

掌握开发中必备技能解锁缓存、支付,邮件和短信发送等高端接口运用,直击工作重难点,通过开发简书项目熟练掌握Laravel5的开发技术。完成以上三个阶段的学习,成为满足企业需求的开发工程师。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师