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,"\n",$b,"\n",$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);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM