无码人妻一区二区三区免费不卡_日韩AV无码综合久久五月_国产成人aⅴ片在线观看_欧美成人片高清在线观看

蜜蜂職場(chǎng)文庫(kù) > 面試試題 >

php經(jīng)典面試題及答案

時(shí)間: 小龍 面試試題

  對(duì)于PHP程序員在求職中,提前了解面試題及答案很重要,那么你做好面試準(zhǔn)備了嗎?下面小編已經(jīng)為你們整理了php經(jīng)典面試題及答案,一起來(lái)看看吧。

  php經(jīng)典面試題及答案一

  1、如何實(shí)現(xiàn)字符串翻轉(zhuǎn)?

  不考慮中英文混合,不是最優(yōu)算法,不用php庫(kù)函數(shù)翻轉(zhuǎn)字符串:

  function str_to_reverse( $str ){

  for($length=0;$str[$length]!=null;$length++){;}

  $strlength = $length-1;

  unset($length);

  for($start=0,$end=$strlength;$start<$end;$start++,$end--){

  $temp = $str[$start];

  $str[$start] = $str[$end];

  $str[$end] = $temp;

  }

  unset($temp,$start,$end,$strlength);

  return $str;

  }

  2、優(yōu)化MYSQL數(shù)據(jù)庫(kù)的方法。

  1) 將where中用的比較頻繁的字段建立索引,聯(lián)合索引。

  2) 保證單表數(shù)據(jù)不超過(guò)200W,適時(shí)分割表。

  3) 避免使用長(zhǎng)連接。

  4) 修改my.cnf里面的各項(xiàng)參數(shù),比如最大連接數(shù),查詢緩存等。根據(jù)你的服務(wù)器內(nèi)存來(lái)最大化調(diào)節(jié)那些配置參數(shù)。

  5) 針對(duì)需求,使用正確的表引擎,是myisam或是innodb。

  3.用PHP寫出顯示客戶端IP與服務(wù)器IP的代碼:

  echo $_SERVER['REMOTE_ADDR'] //客戶端ip

  echo $_SERVER['SERVER_ADDR'] //服務(wù)器端ip

  4、apache+mysql+php實(shí)現(xiàn)最大負(fù)載的方法

  1) 問(wèn)的太籠統(tǒng),生成靜態(tài)html頁(yè)面,squid反向代理,apache,mysql的負(fù)載均衡。

  2)可以采取數(shù)據(jù)緩存的方法,我們通常在統(tǒng)計(jì)數(shù)據(jù)的時(shí)候,需要在原始數(shù)據(jù)的基礎(chǔ)上經(jīng)過(guò)計(jì)算等一系列操作,才會(huì)得到最終的結(jié)果,如果每做一個(gè)查詢都需要這樣一系列操作,當(dāng)數(shù)據(jù)量大時(shí),勢(shì)必會(huì)帶來(lái)很多問(wèn)題。可以建立一個(gè)結(jié)果表,寫一個(gè)腳本,用crontab定時(shí)觸發(fā)腳本去原始表取數(shù)據(jù),計(jì)算,寫入到結(jié)果表,前端查詢從結(jié)果表取數(shù)據(jù),這也是比較常用的一種做法。

  3)采用分布式,多個(gè)apache,多個(gè)mysql,其實(shí)就是dns負(fù)載均衡,dns根據(jù)當(dāng)前用戶解析幾個(gè)ip的ping值,將用戶轉(zhuǎn)移到某一臺(tái)最快的服務(wù)器,或者平均分配。

  4)money不是問(wèn)題的話,可以考慮F5硬件負(fù)載均衡!

  5)可以使用Microsoft Windows Server系統(tǒng)的負(fù)載均衡設(shè)置

  php經(jīng)典面試題及答案二

  1、請(qǐng)舉例說(shuō)明在你的開(kāi)發(fā)過(guò)程中用什么方法來(lái)加快頁(yè)面的加載速度

  答:要用到服務(wù)器資源時(shí)才打開(kāi),及時(shí)關(guān)閉服務(wù)器資源,數(shù)據(jù)庫(kù)添加索引,頁(yè)面可生成靜態(tài),圖片等大文件單獨(dú)服務(wù)器。使用代碼優(yōu)化工具

  2、.以下的代碼會(huì)產(chǎn)生什么?為什么?

  $num =10;

  function multiply(){

  $num =$num *10;

  }

  multiply();

  echo $num;

  由于函式 multiply() 沒(méi)有指定 $num 為全域變量(例如 global $num 或者 $_GLOBALS['num']),所以 $num 的值是 10。

  3. php class中static,public,private,protected的區(qū)別?

  static 靜態(tài),類名可以訪問(wèn)

  public 表示全局,類內(nèi)部外部子類都可以訪問(wèn);

  private表示私有的,只有本類內(nèi)部可以使用;

  protected表示受保護(hù)的,只有本類或子類或父類中可以訪問(wèn);

  4. HTTP協(xié)議中GET、POST和HEAD的區(qū)別?

  HEAD: 只請(qǐng)求頁(yè)面的首部。

  GET: 請(qǐng)求指定的頁(yè)面信息,并返回實(shí)體主體。

  POST: 請(qǐng)求服務(wù)器接受所指定的文檔作為對(duì)所標(biāo)識(shí)的URI的新的從屬實(shí)體。

  (1)HTTP 定義了與服務(wù)器交互的不同方法,最基本的方法是 GET 和 POST。事實(shí)上 GET 適用于多數(shù)請(qǐng)求,而保留 POST 僅用于更新站點(diǎn)。

  (2)在FORM提交的時(shí)候,如果不指定Method,則默認(rèn)為GET請(qǐng) 求,F(xiàn)orm中提交的數(shù)據(jù)將會(huì)附加在url之后,以?分開(kāi)與url分開(kāi)。字母數(shù)字字符原樣發(fā)送,但空格轉(zhuǎn)換為"+"號(hào),其它符號(hào)轉(zhuǎn)換為%XX,其中XX為 該符號(hào)以16進(jìn)制表示的ASCII(或ISO Latin-1)值。GET請(qǐng)求請(qǐng)?zhí)峤坏臄?shù)據(jù)放置在HTTP請(qǐng)求協(xié)議頭中,而POST提交的數(shù)據(jù)則放在實(shí)體數(shù)據(jù)中;

  GET方式提交的數(shù)據(jù)最多只能有1024字節(jié),而POST則沒(méi)有此限制。

  (3)GET 這個(gè)是瀏覽器用語(yǔ)向服務(wù)器請(qǐng)求最常用的方法。POST這個(gè)方法也是用來(lái)傳送數(shù)據(jù)的,但是與GET不同的是,使用POST的時(shí)候,數(shù)據(jù)不是附在URI后面?zhèn)鬟f的,而是要做為獨(dú)立的行來(lái)傳遞,此時(shí)還必須要發(fā)送一個(gè)Content_length標(biāo)題,以標(biāo)明數(shù)據(jù)長(zhǎng)度,隨后一個(gè)空白行,然后就是實(shí)際傳送的數(shù)據(jù)。網(wǎng)頁(yè)的表單通常是用POST來(lái)傳送的。

  php經(jīng)典面試題及答案三

  1、表單提交get和post的區(qū)別?

  答:get的方式是把數(shù)據(jù)在地址欄中發(fā)送,get傳送的數(shù)據(jù)量較小不能大于2KB。post傳送的數(shù)據(jù)量比較大,一般默認(rèn)為不受限制。

  2、用PHP大于出前一天的時(shí)間格式2006-5-10 22:21:21

  echo date("Y-m-d H:i:s",time-(3600*24)) 或者是 echo date("Y-m-d H:i:s",strtotime("-1 day"))

  3、php中include和require的區(qū)別?

  這兩種結(jié)構(gòu)除了在如何處理失敗之外完全一樣。include() 產(chǎn)生一個(gè)警告而 require() 則導(dǎo)致一個(gè)致命錯(cuò)誤。換句話說(shuō),如果你想在遇到丟失文件時(shí)停止處理頁(yè)面就用 require()。include() 就不是這樣,腳本會(huì)繼續(xù)運(yùn)行。

  4、echo(),print(),print_r()的區(qū)別

  echo可以接多個(gè)參數(shù),print只能接一個(gè)參數(shù),它們都是PHP的語(yǔ)言結(jié)構(gòu),print_r是遞規(guī)打印,用來(lái)打印數(shù)組或?qū)ο?/p>

  5、能夠使HTML和PHP分離開(kāi)使用的模板

  smarty,phplib,SmartTemplate

  6你如何理解MVC模式?

  首先說(shuō)一下框架,框架:就是別人把一些底層,常用操作.比如數(shù)據(jù)操作(增,刪,改,查)寫好.你來(lái)直接用.其它的功能要自己來(lái)做。MVC:設(shè)計(jì)模式,M模型,V顯示,C控制.現(xiàn)在許多框架都是基于MVC來(lái)做的把邏輯和顯示分開(kāi).比如你要換頁(yè)面,只需要改V里面的東西并不需要再去變動(dòng)程序!(詳細(xì)的東西可以上網(wǎng)上查一下)

  7、如何實(shí)現(xiàn)PHP、JSP交互?

  PHP提供了支持JAVA的類庫(kù)文件,或者通過(guò)HTTP協(xié)議來(lái)交互數(shù)據(jù)

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

  VSS,CVS,SVN

  
看了“php經(jīng)典面試題及答案”

49524