久久久久无码精品,四川省少妇一级毛片,老老熟妇xxxxhd,人妻无码少妇一区二区

幾道PHP筆試題

時(shí)間:2024-11-06 13:56:01 俊豪 筆試題目 我要投稿
  • 相關(guān)推薦

幾道PHP筆試題

  無(wú)論在學(xué)習(xí)或是工作中,我們都要用到試題,試題可以幫助參考者清楚地認(rèn)識(shí)自己的知識(shí)掌握程度。你所了解的試題是什么樣的呢?下面是小編為大家整理的幾道PHP筆試題,希望對(duì)大家有所幫助。

幾道PHP筆試題

  幾道PHP筆試題 1

  一、基礎(chǔ)知識(shí)(每題 5 分,共 30 分)

  1. PHP 中變量的命名規(guī)則是什么?請(qǐng)舉例說(shuō)明合法和非法的變量名。

  2. 寫(xiě)出至少 3 種 PHP 中的數(shù)據(jù)類(lèi)型,并簡(jiǎn)述其特點(diǎn)。

  3. PHP 中如何定義一個(gè)常量?常量與變量有什么區(qū)別?

  4. 簡(jiǎn)述 PHP 中注釋的幾種類(lèi)型,并分別舉例。

  5. 以下代碼輸出什么?

  $a = 5;

  $b = "5";

  var_dump($a == $b);

  var_dump($a === $b);

  6. PHP 中include和require有什么區(qū)別?

  二、函數(shù)相關(guān)(每題 8 分,共 40 分)

  1. 編寫(xiě)一個(gè) PHP 函數(shù),實(shí)現(xiàn)計(jì)算兩個(gè)整數(shù)的.最大公約數(shù)。

  2. 寫(xiě)一個(gè) PHP 函數(shù),接受一個(gè)字符串作為參數(shù),將字符串中的所有空格替換為下劃線(xiàn),并返回結(jié)果。

  3. 以下是一個(gè) PHP 函數(shù):

  function test($num) {

  if ($num > 0) {

  return $num test($num - 1);

  } else {

  return 1;

  }

  }

  這個(gè)函數(shù)實(shí)現(xiàn)了什么功能?計(jì)算test(5)的值。

  4. 編寫(xiě)一個(gè) PHP 函數(shù),接受一個(gè)數(shù)組作為參數(shù),返回該數(shù)組中的最大值。(不使用 PHP 內(nèi)置的max函數(shù))

  5. 在 PHP 中,如何實(shí)現(xiàn)一個(gè)自定義函數(shù)來(lái)檢查一個(gè)字符串是否是回文(例如“abba”是回文,“abc”不是)?

  三、數(shù)組操作(每題 8 分,共 24 分)

  1. 有一個(gè)關(guān)聯(lián)數(shù)組$arr = array(name=>John, age=>25, city=>New York);,如何遍歷這個(gè)數(shù)組并輸出每個(gè)鍵值對(duì)?

  2. 給定一個(gè)索引數(shù)組$nums = [1, 3, 5, 7, 9];,編寫(xiě)代碼向數(shù)組中添加一個(gè)元素 11,并將數(shù)組倒序輸出。

  3. 有兩個(gè)數(shù)組$arr1 = [1, 2, 3];和$arr2 = [4, 5, 6];,如何將這兩個(gè)數(shù)組合并成一個(gè)新數(shù)組?

  四、數(shù)據(jù)庫(kù)操作(6 分)

  假設(shè)你有一個(gè) MySQL 數(shù)據(jù)庫(kù),表名為users,包含id(整數(shù),自增主鍵)、name(字符串)和age(整數(shù))三個(gè)字段。使用 PHP 的 PDO 擴(kuò)展連接數(shù)據(jù)庫(kù),并查詢(xún)年齡大于 20 的所有用戶(hù)的信息。(只需要寫(xiě)出關(guān)鍵的 PDO 代碼部分)

  答案

  一、基礎(chǔ)知識(shí)

  1. 變量命名規(guī)則:

  變量名必須以美元符號(hào)$開(kāi)頭。

  變量名只能包含字母、數(shù)字和下劃線(xiàn),且不能以數(shù)字開(kāi)頭。

  合法變量名如$var_name、$user_1;非法變量名如$1var(以數(shù)字開(kāi)頭)、$var@name(包含非法字符@)。

  2. 數(shù)據(jù)類(lèi)型及特點(diǎn):

  整型(integer):用于表示整數(shù),如$num = 10;,在 32 位系統(tǒng)中范圍是 -2147483648 到 2147483647。

  字符串(string):用于表示字符序列,可以用單引號(hào)、雙引號(hào)或 heredoc 語(yǔ)法來(lái)定義。例如$str = hello;或$str2 = "world";,雙引號(hào)中的變量會(huì)被解析,單引號(hào)不會(huì)。

  布爾型(boolean):只有兩個(gè)值true和false,常用于條件判斷,如$isTrue = true;。

  數(shù)組(array):可以存儲(chǔ)多個(gè)值,可以是索引數(shù)組(用數(shù)字作為索引)或關(guān)聯(lián)數(shù)組(用字符串作為鍵),如$arr = [1, 2, 3];(索引數(shù)組)或$arr2 = array(key1=>value1, key2=>value2);(關(guān)聯(lián)數(shù)組)。

  浮點(diǎn)型(float/double):用于表示帶有小數(shù)的數(shù)字,如$floatNum = 3.14;。

  3. 常量定義及與變量區(qū)別:

  常量使用define()函數(shù)定義,如define(PI, 3.14);,或者使用const關(guān)鍵字(PHP 5.3 及以上),如const MAX_VALUE = 100;。

  區(qū)別:變量的值可以在程序運(yùn)行中改變,而常量一旦定義就不能重新賦值;常量沒(méi)有美元符號(hào)前綴;常量在整個(gè)腳本執(zhí)行期間其值保持不變。

  4. 注釋類(lèi)型及舉例:

  單行注釋?zhuān)菏褂?/,例如// 這是單行注釋。

  多行注釋?zhuān)菏褂? /,例如/ 這是多行注釋?zhuān)梢钥缭蕉嘈?/。

  5. 輸出結(jié)果:

  var_dump($a == $b);輸出bool(true),因?yàn)?=只比較值,5 和"5"的值相等。

  var_dump($a === $b);輸出bool(false),因?yàn)?==比較值和類(lèi)型,$a是整型,$b是字符串。

  6. include和require區(qū)別:

  當(dāng)使用include包含文件時(shí),如果文件不存在,會(huì)產(chǎn)生一個(gè)警告,腳本繼續(xù)執(zhí)行。

  當(dāng)使用require包含文件時(shí),如果文件不存在,會(huì)產(chǎn)生一個(gè)致命錯(cuò)誤,腳本停止執(zhí)行。

  二、函數(shù)相關(guān)

  1. 計(jì)算最大公約數(shù)函數(shù):

  php

  function gcd($a, $b) {

  while ($b!= 0) {

  $temp = $b;

  $b = $a % $b;

  $a = $temp;

  }

  return $a;

  }

  2. 替換空格為下劃線(xiàn)函數(shù):

  php

  function replaceSpace($str) {

  return str_replace( , _, $str);

  }

  3. 函數(shù)功能及test(5)的值:

  這個(gè)函數(shù)實(shí)現(xiàn)了階乘功能。test(5)的值為5 4 3 2 1 = 120。

  4. 求數(shù)組最大值函數(shù)(不使用max):

  php

  function getMax($arr) {

  $max = $arr[0];

  for ($i = 1; $i < count($arr); $i++) {

  if ($arr[$i] > $max) {

  $max = $arr[$i];

  }

  }

  return $max;

  }

  5. 檢查回文函數(shù):

  php

  function isPalindrome($str) {

  $len = strlen($str);

  for ($i = 0; $i < $len / 2; $i++) {

  if ($str[$i]!= $str[$len - $i - 1]) {

  return false;

  }

  }

  return true;

  }

  三、數(shù)組操作

  1. 遍歷關(guān)聯(lián)數(shù)組:

  php

  $arr = array(name=>John, age=>25, city=>New York);

  foreach ($arr as $key => $value) {

  echo "$key: $value
";

  }

  2. 添加元素并倒序輸出索引數(shù)組:

  php

  $nums = [1, 3, 5, 7, 9];

  $nums[] = 11;

  rsort($nums);

  print_r($nums);

  3. 合并兩個(gè)數(shù)組:

  使用array_merge函數(shù),$newArr = array_merge($arr1, $arr2);。

  四、數(shù)據(jù)庫(kù)操作

  php

  try {

  $pdo = new PDO(mysql:host=localhost;dbname=your_database, username, password);

  $query = "SELECT FROM users WHERE age > 20";

  $stmt = $pdo->query($query);

  $results = $stmt->fetchAll(PDO::FETCH_ASSOC);

  print_r($results);

  } catch(PDOException $e) {

  echo "Connection failed: ". $e->getMessage();

  }

  幾道PHP筆試題 2

  1. 如何用php的環(huán)境變量得到一個(gè)網(wǎng)頁(yè)地址的內(nèi)容?ip地址又要怎樣得到?

  2. 求兩個(gè)日期的差數(shù),例如2007-2-5 ~ 2007-3-6 的日期差數(shù)

  3. 請(qǐng)寫(xiě)一個(gè)函數(shù),實(shí)現(xiàn)以下功能:

  字符串“open_door” 轉(zhuǎn)換成 “OpenDoor”、”make_by_id” 轉(zhuǎn)換成 ”MakeById”。

  4. 要求寫(xiě)一段程序,實(shí)現(xiàn)以下數(shù)組$arr1轉(zhuǎn)換成數(shù)組$arr2:

  $arr1 = array (

  ’0′ => array (‘fid’ => 1, ‘tid’ => 1, ‘name’ =>’Name1′ ),

  ’1′ => array (‘fid’ => 1, ‘tid’ => 2 , ‘name’ =>’Name2′ ),

  ’2′ => array (‘fid’ => 1, ‘tid’ => 5 , ‘name’ =>’Name3′ ),

  ’3′ => array (‘fid’ => 1, ‘tid’ => 7 , ‘name’ =>’Name4′ ),

  ’4′ => array (‘fid’ => 3, ‘tid’ => 9, ‘name’ =>’Name5′ )

  );

  $arr2 = array (

  ’0′ => array (

  ’0′ => array ( ‘tid’ => 1, ‘name’ => ‘Name1′),

  ’1′ => array ( ‘tid’ => 2, ‘name’ => ‘Name2′),

  ’2′ => array ( ‘tid’ => 5, ‘name’ => ‘Name3′),

  ’3′ => array ( ‘tid’ => 7, ‘name’ => ‘Name4′)

  ),

  ’1′ => array (

  ’0′ => array ( ‘tid’ => 9, ‘name’ => ‘Name5′ )

  )

  );

  5. 請(qǐng)簡(jiǎn)述數(shù)據(jù)庫(kù)設(shè)計(jì)的范式及應(yīng)用。

  一般第3范式就足以,用于表結(jié)構(gòu)的優(yōu)化,這樣做既可以避免應(yīng)用程序過(guò)于復(fù)雜同時(shí)也避免了SQL語(yǔ)句過(guò)于龐大所造成系統(tǒng)效率低下。

  6.一個(gè)表中的Id有多個(gè)記錄,把所有這個(gè)id的記錄查出來(lái),并顯示共有多少條記錄數(shù),用SQL語(yǔ)句及視圖、存儲(chǔ)過(guò)程分別實(shí)現(xiàn)。

  DELIMITER //

  CREATE PROCEDURE ProcGet

  (

  IN ID_a INT(11)

  )

  BEGIN

  DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN END;

  SELECT COUNT() AS Sum FROM News Where ID = ID_a;

  END;//

  CALL ProcGet(88)//

  7 表中有A B C三列,用SQL語(yǔ)句實(shí)現(xiàn):當(dāng)A列大于B列時(shí)選擇A列否則選擇B列,當(dāng)B列大于C列時(shí)選擇B列否則選擇C列。

  DELIMITER //

  CREATE PROCEDURE ProcOut()

  BEGIN

  DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN END;

  DECLARE Sum_a INT(11);

  DECLARE Sum_b INT(11);

  DECLARE Sum_c INT(11);

  – 獲取A列中的.總值 <–

  DECLARE cur_1 CURSOR FOR SELECT SUM(A) FROM table_name;

  OPEN cur_1;

  FETCH cur_ 1 INTO Sum_a;

  CLOSE cur_1;

  – 獲取B列中的總值 <–

  DECLARE cur_2 CURSOR FOR SELECT SUM(B) FROM table_name;

  OPEN cur_2;

  FETCH cur_ 2 INTO Sum_b;

  CLOSE cur_2;

  – 獲取C列中的總值 <–

  DECLARE cur_3 CURSOR FOR SELECT SUM(C) FROM table_name;

  OPEN cur_3;

  FETCH cur_ 3 INTO Sum_c;

  CLOSE cur_3;

  IF Sum_a > Sum_b THEN

  SELECT A FROM table_name;

  ELSEIF Sum_b > Sum_c THEN

  SELECT B FROM table_name;

  ELSE

  SELECT C FROM table_name;

  END IF;;

  END;//

  CALL ProcOut()//

  8請(qǐng)簡(jiǎn)述項(xiàng)目中優(yōu)化sql語(yǔ)句執(zhí)行效率的方法,從哪些方面,sql語(yǔ)句性能如何分析?

  9 如果模板是用smarty模板。怎樣用section語(yǔ)句來(lái)顯示一個(gè)名為$data的數(shù)組。比如:

  $data = array(

  [0] => array( [id]=8 [name]=’name1′)

  [1] => array( [id]=10 [name]=’name2′)

  [2] => array( [id]=15 [name]=’name3′)

  ……

  )

  寫(xiě)出在模板頁(yè)的代碼? 若用foreach語(yǔ)句又要怎樣顯示呢?

  10 寫(xiě)一個(gè)函數(shù),能夠遍歷一個(gè)文件夾下的所有文件和子文件夾。(目錄操作)

  11 兩張表 city表和province表。分別為城市與省份的關(guān)系表。

  city:

  id City Provinceid

  1 廣州 1

  2 深圳 1

  3 惠州 1

  4 長(zhǎng)沙 2

  5 武漢 3

  ………. 廣州

  province:

  id Province

  1 廣東

  2 湖南

  3 湖北

  ……….

  (1) 寫(xiě)一條sql語(yǔ)句關(guān)系兩個(gè)表,實(shí)現(xiàn):顯示城市的基本信息。?

  (2) 顯示字段:城市id ,城市名, 所屬省份 。

  如:

  Id(城市id) Cityname(城市名) Privence(所屬省份)

  (2)如果要統(tǒng)計(jì)每個(gè)省份有多少個(gè)城市,請(qǐng)用group by 查詢(xún)出來(lái)。?

  顯示字段:省份id ,省份名,包含多少個(gè)城市。

  12. 按照你的經(jīng)驗(yàn)請(qǐng)簡(jiǎn)述軟件工程進(jìn)行軟件開(kāi)發(fā)的步驟。以下工具Rational Rose、PowerDesigner、Project、VSS或CVS、TestDirector使用過(guò)那種,有缺點(diǎn)是什么?

  13. 請(qǐng)簡(jiǎn)述操作系統(tǒng)的線(xiàn)程與進(jìn)程的區(qū)別。列舉LINUX下面你使用過(guò)的軟件?

  14. 請(qǐng)使用偽語(yǔ)言結(jié)合數(shù)據(jù)結(jié)構(gòu)冒泡排序法對(duì)以下一組數(shù)據(jù)進(jìn)行排序 10 2 36 14 10 25 23 85 99 45。

【幾道PHP筆試題】相關(guān)文章:

筆試題:ASP與PHP04-05

PHP基礎(chǔ)筆試題12-10

PHP筆試題及答案02-11

php面試題?10-29

Yahoo-PHP筆試題02-11

PHP筆試題含答案02-11

騰訊php面試題08-26

PHP面試題匯編04-07

Yahoo的PHP面試題04-05