国产精品亚洲综合久久系列,一本大道香蕉青青久久,播放高清的播放器,国产在线观看无码不卡

蜜蜂職場文庫 > 面試試題 >

php初級程序員面試題目_php初級程序員面試題

時間: 小龍 面試試題

  對于PHP初級程序員來說,在面試中做好面試準(zhǔn)備,了解面試題目很有必要,那么你了解面試題目了嗎?下面小編已經(jīng)為你們整理了php初級程序員面試題目,希望可以幫到你。

  php初級程序員面試題目(一)

  1、您是否用過版本控制軟件? 如果有您用的版本控制軟件的名字是?(1分)

  2、您是否用過模板引擎? 如果有您用的模板引擎的名字是?(1分)

  答:用過,smarty

  3、請簡單闡述您最得意的開發(fā)之作(4分)

  答:信息分類

  4、對于大流量的網(wǎng)站,您采用什么樣的方法來解決訪問量問題?(4分)

  答:確認(rèn)服務(wù)器硬件是否足夠支持當(dāng)前的流量,數(shù)據(jù)庫讀寫分離,優(yōu)化數(shù)據(jù)表,

  程序功能規(guī)則,禁止外部的盜鏈,控制大文件的下載,使用不同主機分流主要流量

  5、語句include和require的區(qū)別是什么?為避免多次包含同一文件,可用(?)語句代替它們? (2分)

  答:require->require是無條件包含也就是如果一個流程里加入require,無論條件成立與否都會先執(zhí)行require

  include->include有返回值,而require沒有(可能因為如此require的速度比include快)

  注意:包含文件不存在或者語法錯誤的時候require是致命的,include不是

  6、foo()和@foo()之間有什么區(qū)別?(1分)

  答:@foo()控制錯誤輸出

  7、如何聲明一個名為”myclass”的沒有方法和屬性的類? (1分)

  答:class myclass{ }

  8、如何實例化一個名為”myclass”的對象?(1分)

  答:new myclass()

  9、你如何訪問和設(shè)置一個類的屬性? (2分)

  答:$object = new myclass();

  $newstr = $object->test;

  $object->test = "info";

  10、mysql_fetch_row() 和mysql_fetch_array之間有什么區(qū)別? (1分)

  答:mysql_fetch_row是從結(jié)果集取出1行數(shù)組,作為枚舉

  mysql_fetch_array是從結(jié)果集取出一行數(shù)組作為關(guān)聯(lián)數(shù)組,或數(shù)字?jǐn)?shù)組,兩者兼得

  11、GD庫是做什么用的? (1分)

  答:gd庫提供了一系列用來處理圖片的API,使用GD庫可以處理圖片,或者生成圖片。

  在網(wǎng)站上GD庫通常用來生成縮略圖或者用來對圖片加水印或者對網(wǎng)站數(shù)據(jù)生成報表。

  php初級程序員面試題目(二)

  1、談?wù)剬vc的認(rèn)識(1分)

  答:由模型(model),視圖(view),控制器(controller)完成的應(yīng)用程序

  由模型發(fā)出要實現(xiàn)的功能到控制器,控制器接收組織功能傳遞給視圖;

  2、寫出發(fā)貼數(shù)最多的十個人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分)

  答:SELECT * FROM `members` ORDER BY posts DESC limit 0,10;

  3、 請說明php中傳值與傳引用的區(qū)別。什么時候傳值什么時候傳引用?(2分)

  答:按值傳遞:函數(shù)范圍內(nèi)對值的任何改變在函數(shù)外部都會被忽略

  按引用傳遞:函數(shù)范圍內(nèi)對值的任何改變在函數(shù)外部也能反映出這些修改

  優(yōu)缺點:按值傳遞時,php必須復(fù)制值。特別是對于大型的字符串和對象來說,這將會是一個代價很大的操作。

  按引用傳遞則不需要復(fù)制值,對于性能提高很有好處。

  4、 在PHP中error_reporting這個函數(shù)有什么作用? (1分)

  答:設(shè)置錯誤級別與錯誤信息回報

  5、 請寫一個函數(shù)驗證電子郵件的格式是否正確 (2分)

  答:function checkEmail($email)

  {

  $pregEmail = "/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_

  ]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i";

  return preg_match($pregEmail,$email);

  }

  6、 簡述如何得到當(dāng)前執(zhí)行腳本路徑,包括所得到參數(shù)。(2分)

  答:$script_name = basename(__file__); print_r($script_name);

  7、JS表單彈出對話框函數(shù)是?獲得輸入焦點函數(shù)是? (2分)

  答:彈出對話框: alert(),prompt(),confirm()

  獲得輸入焦點 focus()

  8、JS的轉(zhuǎn)向函數(shù)是?怎么引入一個外部JS文件?(2分)

  答:window.location.href,<script type="text/javascript" src="js/js_function.js"></script>

  php初級程序員面試題目(三)

  1、使用哪些工具進(jìn)行版本控制?(1分)

  答:cvs,svn,vss;

  2、如何實現(xiàn)字符串翻轉(zhuǎn)?(3分)

  答:echo strrev($a);

  3、優(yōu)化MYSQL數(shù)據(jù)庫的方法。(4分,多寫多得)

  答:

  1)、選取最適用的字段屬性,盡可能減少定義字段長度,盡量把字段設(shè)置NOT NULL,例如'省份,性別',最好設(shè)置為ENUM

  2)、使用連接(JOIN)來代替子查詢:

  a.刪除沒有任何訂單客戶:DELETE FROM customerinfo WHERE customerid NOT in(SELECT customerid FROM orderinfo)

  b.提取所有沒有訂單客戶:SELECT FROM customerinfo WHERE customerid NOT in(SELECT customerid FROM orderinfo)

  c.提高b的速度優(yōu)化:SELECT FROM customerinfo LEFT JOIN orderid customerinfo.customerid=orderinfo.customerid

  WHERE orderinfo.customerid IS NULL

  3)、使用聯(lián)合(UNION)來代替手動創(chuàng)建的臨時表

  a.創(chuàng)建臨時表:SELECT name FROM `nametest` UNION SELECT username FROM `nametest2`

  4)、事務(wù)處理:

  a.保證數(shù)據(jù)完整性,例如添加和修改同時,兩者成立則都執(zhí)行,一者失敗都失敗

  mysql_query("BEGIN");

  mysql_query("INSERT INTO customerinfo (name) VALUES ('$name1')";

  mysql_query("SELECT * FROM `orderinfo` where customerid=".$id");

  mysql_query("COMMIT");

  5)、鎖定表,優(yōu)化事務(wù)處理:

  a.我們用一個 SELECT 語句取出初始數(shù)據(jù),通過一些計算,用 UPDATE 語句將新值更新到表中。

  包含有 WRITE 關(guān)鍵字的 LOCK TABLE 語句可以保證在 UNLOCK TABLES 命令被執(zhí)行之前,

  不會有其它的訪問來對 inventory 進(jìn)行插入、更新或者刪除的操作

  mysql_query("LOCK TABLE customerinfo READ, orderinfo WRITE");

  mysql_query("SELECT customerid FROM `customerinfo` where id=".$id);

  mysql_query("UPDATE `orderinfo` SET ordertitle='$title' where customerid=".$id);

  mysql_query("UNLOCK TABLES");

  6)、使用外鍵,優(yōu)化鎖定表

  a.把customerinfo里的customerid映射到orderinfo里的customerid,

  任何一條沒有合法的customerid的記錄不會寫到orderinfo里

  CREATE TABLE customerinfo

  (

  customerid INT NOT NULL,

  PRIMARY KEY(customerid)

  )TYPE = INNODB;

  CREATE TABLE orderinfo

  (

  orderid INT NOT NULL,

  customerid INT NOT NULL,

  PRIMARY KEY(customerid,orderid),

  FOREIGN KEY (customerid) REFERENCES customerinfo

  (customerid) ON DELETE CASCADE

  )TYPE = INNODB;

  注意:'ON DELETE CASCADE',該參數(shù)保證當(dāng)customerinfo表中的一條記錄刪除的話同時也會刪除order

  表中的該用戶的所有記錄,注意使用外鍵要定義事務(wù)安全類型為INNODB;

  7)、建立索引:

  a.格式:

  (普通索引)->

  創(chuàng)建:CREATE INDEX <索引名> ON tablename (索引字段)

  修改:ALTER TABLE tablename ADD INDEX [索引名] (索引字段)

  創(chuàng)表指定索引:CREATE TABLE tablename([...],INDEX[索引名](索引字段))

  (唯一索引)->

  創(chuàng)建:CREATE UNIQUE <索引名> ON tablename (索引字段)

  修改:ALTER TABLE tablename ADD UNIQUE [索引名] (索引字段)

  創(chuàng)表指定索引:CREATE TABLE tablename([...],UNIQUE[索引名](索引字段))

  (主鍵)->

  它是唯一索引,一般在創(chuàng)建表是建立,格式為:

  CREATA TABLE tablename ([...],PRIMARY KEY[索引字段])

  8)、優(yōu)化查詢語句

  a.最好在相同字段進(jìn)行比較操作,在建立好的索引字段上盡量減少函數(shù)操作

  例子1:

  SELECT * FROM order WHERE YEAR(orderDate)<2008;(慢)

  SELECT * FROM order WHERE orderDate<"2008-01-01";(快)

  例子2:

  SELECT * FROM order WHERE addtime/7<24;(慢)

  SELECT * FROM order WHERE addtime<24*7;(快)

  例子3:

  SELECT * FROM order WHERE title like "%good%";

  SELECT * FROM order WHERE title>="good" and name<"good";

  4、PHP的意思(送1分)

  答:PHP是一個基于服務(wù)端來創(chuàng)建動態(tài)網(wǎng)站的腳本語言,您可以用PHP和HTML生成網(wǎng)站主頁

  5、MYSQL取得當(dāng)前時間的函數(shù)是?,格式化日期的函數(shù)是(2分)

  答:now(),date()

  6、實現(xiàn)中文字串截取無亂碼的方法。(3分)

  答:function GBsubstr($string, $start, $length) {

  if(strlen($str

  ing)>$length){

  $str=null;

  $len=$start+$length;

  for($i=$start;$i<$len;$i++){

  if(ord(substr($string,$i,1))>0xa0){

  $str.=substr($string,$i,2);

  $i++;

  }else{

  $str.=substr($string,$i,1);

  }

  }

  return $str.'...';

  }else{

  return $string;

  }

  }

  
看了“php初級程序員面試題目”

49566