PHP试题网_中国最大的免费网络PHP试题测试平台,PHP试卷调查,PHP试卷模板、PHP考试测验
公告: PHP试题网于2022.06.21变更为少儿编程学院
  试卷名称:中科信安PHP工程师笔试题2
试卷难度:中高级
试卷分数:100
点击开始考试
点击打印试卷
  中科信安PHP工程师笔试题2
  姓名: 手机号: 面试官评分:

一、选择题(不定项)(共75分)

  1. $str = >>>EOD<br>I saw a dog yesterday.<br>EOD;<br>echo $str;<br>以上会输出:(5分)
  2. 函数与方法是一样的,只是说法不同(5分)
  3. <script src='1.js'>alert('1');</script>输出啥[假设1.js文件存在](5分)
  4. echo与print的说法中,那个是错误的(5分)
  5. 自然排序使用哪个函数:(5分)
  6. 请选择以下代码运行的结果:
    <?php
    if ('1e3' == '1000') echo 'LOL';
    ?>(5分)
  7. <p><br/>请选出以下正确答案:<br/>    <br/>package main<br/>import "fmt"<br/>const (<br/>
        mutexLocked = 1 << iota // mutex is locked<br/>
        mutexWoken<br/>
        mutexStarving<br/>
        mutexWaiterShift = iota<br/>)<br/>    <br/>func main() {<br/>    fmt.Println(mutexLocked, mutexWoken,  mutexStarving, mutexWaiterShift)<br/>}<br/></p>(5分)
  8. 下面哪个选项没有将 john 添加到users 数组中?(5分)
  9. $GLOBALS和global的说法中哪些是正确的(5分)
  10. $bA = true;  $bB = false;
    $b1 = $bA and $bB;  $b2 = $bA && $bB;
    var_dump($b1);
    var_dump($b2);
    var_dump($bA and $bB);
    var_dump($bA && $bB);
    请选出正确的答案:(5分)
  11. 以下内容输出结果为:
    $a = 0;
    switch ($a) {
    case $a >= 0:
    echo 0;
    break;
    case $a >= 10:
    echo 1;
    break;

    default:
    echo 2;
    break;
    }
    exit();(5分)
  12. 请选出以下代码运行的结果:
    <?php
    $a = "aabbzz";
    $a++;
    echo $a;
    ?>(5分)
  13. 春节期间,甲、乙、丙三个人用支付宝钱包玩发红包游戏,只能通过各自账户余额来发红包,第一轮甲给乙的红包金额等于乙支付宝钱包里面的账户余额,甲给丙的红包金额等于丙支付宝钱包里面的账户余额,与此相同,第二轮乙给甲和丙的红包金额等于他们各自支付宝钱包的账户余额,第三轮丙给甲和乙的红包金额等于他们各自支付宝钱包里面的账户余额,若最后大家支付宝钱包里面的余额都是16元,则甲最初的支付宝钱包账户余额为____。(5分)
  14. $array = [1, 2, 3]; 
    foreach ($array as &$value) {}
    foreach ($array as $value) {}
    echo implode(',', $array);
    输出结果为(5分)
  15. echo(intval((0.7 + 0.1) * 100 / 10));打印结果(5分)

二、简述题(共20分)

  1. 有这样一个处理异常订单的计划任务在跑(每5分钟跑一次,由crontab控制):
    $redis        = new Redis();
    $curpage   = $redis->get('page');
    $pagesize  = 100;//每次捞100个订单数据
    $curpage   = empty($curpage) ? 1 : $curpage;
    $offset       = ($curpage - 1) * $pagesize;
    $where      = '条件,这里不用理会';
    $ret_order = M('GoodsOrder')->where($where)->limit("{$offset},{$pagesize}")->select();

    if(empty($reg_order)){
       exit('没有数据,退出');
    }
    foreach($ret_order as $k => $v){
    处理逻辑,这里是正确的,不用理会
    }
    $curpage++;
    $redis->set(‘page', $curpage);

    请指出上面这个计划任务的bug。(10分)
  2. 请看以下程序,并回答问题:此段程序每3秒跑一次,会有什么问题?

    public function fixdata()
    {
            $redis              = $this->redis();
            $fixRedisId       = 'adexchange.lastfixredisid';
            $startRedisId   = $redis->get($fixRedisId);
            if(empty($startRedisId)){
                $startRedisId   = 20600000;
            }
            if(!empty($_GET['startRedisId'])){
                $startRedisId   = $_GET['startRedisId'];
            }
            $redis_key_bid  = 'adexchange.bid';
            $objdb               =  M('ad_log');
            $time                 = time();

            $v    = $startRedisId;
            $i     = 0;
            while(1){
                if(time() - $time > 30){
                    break;
                }
                $v++;
                $redis->set($fixRedisId, $v);
                $a    = $redis->hGet($redis_key_bid, $v);
                $redis->hDel($redis_key_bid, $v);
                $data = json_decode($a, true);
                if(empty($data)){
                    continue;
                }
                $objdb->add($data);
                $i++;
            }
            echo '共修复数据:'.$i;
    }(10分)