zoukankan      html  css  js  c++  java
  • PHP中常见的面试题3(附答案)

    一、选择题

    01. 输出为Mozilla/4.0(compatible;MSIE5.01;Window NT 5.0)时,可能的输出语句是:

       A. $_SERVER['HTTP_USER_AGENT_TYPE'];

       B. $_SERVER['HTTP_USER_AGENT'];

       C. $_SERVER['USER_AGENT'];

       D. $_SERVER['AGENT'];

      

    02. 下面功能PHP无法实现的是:

       A. 服务器端脚本运行

       B. 命令行脚本运行

       C. 客户端图形界面(GUI)程序

       D. 浏览器端执行DOM操作

      

    03. 下面说法不正确的是:

       A. PHP有四种标量类型:布尔型(boolean),整型(integer),浮点型(float),字符串(string)

       B. 浮点型(float)与双精度型(double)是同一种类型

       C. 复合类型包括:数组(array),对象(object),资源(resource)

       D. 伪类型:混合型(mixed),数字型(number),回调(callback)

       

    04. 执行下面的代码后, 得到的输出是:(说明:  Echo print array eval list è语言结构)

    <?php
          echo function_exists('print');
    ?>

       A.

       B. true

       C. false

       D. FALSE

    05. 执行下面的代码的结果是什么?

       <?php
          $bool = TRUE;
          echo gettype($bool);
          echo is_string($bool);
       ?>

       A. boolean

       B. boolean0

       C. booleanFALSE

       D. Booleanfalse

    06. 写出下面代码执行的结果:

      <?php
          $a = 12;
          $b = 012
          $c = 0x12;
          echo $a,"
    ",$b,"
    ",$c;
       ?>

    结果: 12 10 18  (二,十、八和十六进制之间转换,核心点二进制)

    07. 下面代码的执行结果是什么?

       <?php
        echo 1+2+"3+4+5";
       ?>

       A. 0     C. 6

       B. 3     D. "33+4+5";

     

    09. 下面代码加入下面那个函数后返回TRUE:

    return ? == 'A';

       A. ord(65)

       B. chr(65)

       C. 65+''

       D. ''+65

      

    10. 下面代码的输出正确的是:

       <?php
          $a = array(1=>5,5=>8,22,2=>'8',81);
          echo $a[7];
          echo $a[6];
          echo $a[3];
       ?>

       A. 空2281   

       B.空8122    

       C.8122    

       D.空空空

      

    11. 下面代码的输出结果:

      <?php
          $a[bar]='hello';
          echo $a[bar];
          echo $a['bar'];
       ?>

       A. hello

       B. 空空

       C.报错

       D.hellohello

      

    12. 写出下面代码的结果:

    <?php
      echo 1>>0;    //001 ==>1
      echo 2>>1;    //010 ==> 001=>1
      echo 3<<2;    //011 <== 01100 =>12
    ?>

    A. 012

    B. 106

    C. 1112 

    D.123

    13. 下面代码的执行结果:

       <?php
    
          for($i=0;i<10;$i++){
    
             print $i;
    
          }
    
       ?>

    A. 0123456789

    B. 012345678910

    C. 无输出

    D. 死循环

      

    14. 下面对于echo, print 的描述正确的是:

    A. echo, print 都可以打印多个参数

    B. print 可以打印多个参数,echo 不可以

    C. echo  可以打印多个参数,print不可以

    D. echo, print 都不可以打印多个参数

      

    15. 对于正面的代码

       <?php
          $fruits = array('strawberry'=>'red', 'banana'=>'yellow');
       ?>

       不能够正确得到结果'yellow'的代码是:

       A. echo "A banana is {$fruits['banana']}";

       B. echo "A banana is $fruits['banana']";

       C. echo "A banana is {$fruits[banana]}";

       D. echo "A banana is $fruits[banana]";

      

    16. 下面代码执行完成后的结果是什么?

       <?php
          function change(){
             static $i = 0;
             $i++;
             return $i;
          }
          print change();
          print change();
       ?>

       结果:   1   2

     

     

    18. 下面的语句输出结果 :

       <?php
             $foo = 'test';
             $bar = <<<EOT
             $foo bar
        EOT;
           echo $bar;
        ?>

       a. $foo bar;

       b. 'EOT' $foo bar EOT;

       c. test bar;

       d. 'EOT' test bar EOT;

    19.$b的值是:

       $a=3; $b=4;

       if($a||$b=5){

          echo 'tudo';

       }

       a. 4;

       b. 5;

       c. 3;

       d. false

    二、简答题

    1.  什么事面向对象?主要特征是什么?

      1) 面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰。

      2) 主要特征:封装、继承、多态

    2. HTTP 状态中302、403、 500代码含义?

      302重定向、

      403服务器拒绝访问

      500服务器内部错误

    4. Linux 下建立压缩包,解压缩包的命令。

      压缩 tar czf test.tar.gz test.php

      解压 tar xzf test.tar.gz

    5. 请写出数据类型(int char varchar datetime text)的意思;请问 varchar 和 char有什么区别?

      1)类型介绍:

      int是数字类型,

      char固定长度字符串,

      varchar长度变字符串,

      datetime日期时间型,

      text文本字符串

       2)varchar 和 char的区别:

      1. Char定义的为固定长度, 范围是0~255, varchar定义的为变长长度, 范围为0~65535

      2.char在存储时会自动补空格, varchar不会.

      3.varchar在存储时会多占用1~2个字节记录长度, char不会.

    6. MyISAM 和 InnoDB 的基本区别?

      1. 查询速度  myisam快一些

      2. 事务      innodb支持, myisam不支持

      3. 全文索引  myisam支持, innodb不支持

      4. 锁机制    myisam支持表所, innodb支持行锁

      5. 存储文件  myisam产生三个文件(.frm  .myd  .myi),  innodb产生两个文件(.frm  .ibd)

      

    7. 不使用cookie向客户端发送一个cookie.

      header('set-cookie: abc=abc;max-Age=3600;path=/');

    8. isset() 和 empty() 区别,对不同数据的判断结果

      1)isset()是判断变量是否存在,是否定义

      2)empty()是判断变量的值是否为空.

    9. 如何在页面之间传递变量(至少两种方式) ?

      1)get

      2)post

      3)ajax

      4)curl

      5)cookie

      6)session

    三、PHP 代码题

    1. 写出匹配URL的正则表达式.

      http://www.baidu.com/index.php?id=1&name=user1

      (http|ftp)://(www.)?(S*)(?S*&S*)?(.*)//(.*)?(.*)?

     

    2. 请写出常见的排序算法,并用PHP实现冒泡排序,将数组$a = array()按照从小到大的方式进行排序

      快速排序

      冒泡排序

      插入排序

      归并排序

    <?php
    Function mysort($arr){
           For($i=0; $i<count($arr); $i++){
                  For($j=0; $j<count($arr)-1; $j++){
                                If($arr[$j] > $arr[$j+1]){
                                              $tmp=$arr[$j];
                                              $arr[$j]=$arr[$j+1];
                                              $arr[$j+1]=$tmp;
                    }
            }
        }
           Return $arr;
    }
    $arr=array(3,2,1);
    print_r(mysort($arr));

     

    3. 在数据库test中的一个表student,字段是name,class,score。分别代表姓名、所在班级,分数。

      1) 算出每个班级中的学生,按照成绩降序排序;  

      select name,class,score from student order by score desc;

      2) 查出每个班的及格人数和不及格人数,格式为:class、及格人数、不及格人数

      SELECT

        sum(case when score >= 60 then 1 else 0 end) jige,

        sum(case when score < 60 then 1 else 0 end) bujige,

        class

      FROM `score` 

      GROUP BY `class`

      3) 用PHP写入连接数据库("localhost","msuser","mspass")、执行以上SQL、显示结果、判断错误、关闭数据库的过程 

      $conn=mysql_connect(‘localhost’,'msuser’,’mspass′);

      Mysql_select_db(‘test’);

      $sql="SELECT

          sum(case when score >= 60 then 1 else 0 end) jige,

          sum(case when score < 60 then 1 else 0 end) bujige,

          class

         FROM `score` 

         GROUP BY `class`";

      if($result=Mysql_query($sql)){

             while($row=mysql_fetch_assoc($result)){

                    print_r($row);

             }

      }

      Mysql_close($conn);

  • 相关阅读:
    组合模式
    MySQL8.0 下载安装启动(Windows10)
    OI如逆旅,我亦是行人——省选
    闲话—江湖痴情浅,信步余生。平剑红烛,青丝微绾,却话奁中。
    此时彼方
    CSP 2019游记 & 退役记
    西狂 杨过
    SDOI 2019 Round1 游记
    NOIP2018游记
    未来可期,不知所终
  • 原文地址:https://www.cnblogs.com/AngryBigCat/p/7277612.html
Copyright © 2011-2022 走看看