PHP常見面試題及答案_第1頁
PHP常見面試題及答案_第2頁
PHP常見面試題及答案_第3頁
PHP常見面試題及答案_第4頁
PHP常見面試題及答案_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、基礎(chǔ)題:1.表單中 get與post提交方法的區(qū)別?答:get是發(fā)送請求HTTP協(xié)議通過url參數(shù)傳遞進(jìn)行接收,而post是實(shí)體數(shù)據(jù),可以通過表單提交大量信息.2.session與cookie的區(qū)別?答:session:儲存用戶訪問的全局唯一變量,存儲在服務(wù)器上的php指定的目錄中的(session_dir)的位置進(jìn)行的存放cookie:用來存儲連續(xù)訪問一個(gè)頁面時(shí)所使用,是存儲在客戶端,對于Cookie來說是存儲在用戶WIN的Temp目錄中的。 兩者都可通過時(shí)間來設(shè)置時(shí)間長短3.數(shù)據(jù)庫中的事務(wù)是什么?答:事務(wù)(transaction)是作為一個(gè)單元的一組有序的數(shù)據(jù)庫操作。如果組中的所有操作都成

2、功,則認(rèn)為事務(wù)成功,即使只有一個(gè)操作失敗,事務(wù)也不成功。如果所有操作完成,事務(wù)則提交,其修改將作用于所有其他數(shù)據(jù)庫進(jìn)程。如果一個(gè)操作失敗,則事務(wù)將回滾,該事務(wù)所有操作的影響都將取消。簡述題:1、用PHP打印出前一天的時(shí)間格式是2006-5-10 22:21:21(2分)答:echo date(Y-m-d H:i:s, strtotime(-1 days); 2、echo(),print(),print_r()的區(qū)別(3分)答:echo是PHP語句, print和print_r是函數(shù),語句沒有返回值,函數(shù)可以有返回值(即便沒有用) print() 只能打印出簡單類型變量的值(如int,strin

3、g) print_r() 可以打印出復(fù)雜類型變量的值(如數(shù)組,對象) echo 輸出一個(gè)或者多個(gè)字符串3、能夠使HTML和PHP分離開使用的模板(1分)答:Smarty,Dwoo,TinyButStrong,Template Lite,Savant,phemplate,XTemplate5、使用哪些工具進(jìn)行版本控制?(1分)答:cvs,svn,vss;6、如何實(shí)現(xiàn)字符串翻轉(zhuǎn)?(3分)答:echo strrev($a);7、優(yōu)化MYSQL數(shù)據(jù)庫的方法。(4分,多寫多得)答:1、選取最適用的字段屬性,盡可能減少定義字段長度,盡量把字段設(shè)置NOT NULL,例如省份,性別,最好設(shè)置為ENUM2、使用

4、連接(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.custome

5、ridWHERE orderinfo.customerid IS NULL3、使用聯(lián)合(UNION)來代替手動(dòng)創(chuàng)建的臨時(shí)表a.創(chuàng)建臨時(shí)表:SELECT name FROM nametest UNION SELECT username FROM nametest24、事務(wù)處理:a.保證數(shù)據(jù)完整性,例如添加和修改同時(shí),兩者成立則都執(zhí)行,一者失敗都失敗mysql_query(BEGIN);mysql_query(INSERT INTO customerinfo (name) VALUES ($name1);mysql_query(SELECT * FROM orderinfo where custo

6、merid=.$id);mysql_query(COMMIT);5、鎖定表,優(yōu)化事務(wù)處理:a.我們用一個(gè) SELECT 語句取出初始數(shù)據(jù),通過一些計(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

7、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;C

8、REATE 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表中的一條記錄刪除的話同時(shí)也會刪除order表中的該用戶的所有記錄,注意使用外鍵要定義事務(wù)安全類型為INNODB;7、建立索引:a.格式

9、:(普通索引)-創(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)建表是建立,格式為:CR

10、EATA TABLE tablename (.,PRIMARY KEY索引字段)8、優(yōu)化查詢語句a.最好在相同字段進(jìn)行比較操作,在建立好的索引字段上盡量減少函數(shù)操作例子1:SELECT * FROM order WHERE YEAR(orderDate)2008;(慢)SELECT * FROM order WHERE orderDate2008-01-01;(快)例子2:SELECT * FROM order WHERE addtime/724;(慢)SELECT * FROM order WHERE addtime=good and name$length)$str=null;$len=$

11、start+$length;for($i=$start;$i0xa0)$str.=substr($string,$i,2);$i+;else$str.=substr($string,$i,1);return $str.;elsereturn $string;11、您是否用過版本控制軟件? 如果有您用的版本控制軟件的名字是?(1分)12、您是否用過模板引擎? 如果有您用的模板引擎的名字是?(1分)答:用過,smarty13、請簡單闡述您最得意的開發(fā)之作(4分)答:信息分類14、對于大流量的網(wǎng)站,您采用什么樣的方法來解決訪問量問題?(4分)答:確認(rèn)服務(wù)器硬件是否足夠支持當(dāng)前的流量,數(shù)據(jù)庫讀寫分離,

12、優(yōu)化數(shù)據(jù)表,程序功能規(guī)則,禁止外部的盜鏈,控制大文件的下載,使用不同主機(jī)分流主要流量15、用PHP寫出顯示客戶端IP與服務(wù)器IP的代碼1分)答:打印客戶端IP:echo $_SERVERREMOTE_ADDR; 或者: getenv(REMOTE_ADDR);打印服務(wù)器IP:echo gethostbyname()16、語句include和require的區(qū)別是什么?為避免多次包含同一文件,可用(?)語句代替它們? (2分)答:require-require是無條件包含也就是如果一個(gè)流程里加入require,無論條件成立與否都會先執(zhí)行require include-include有返回值,而r

13、equire沒有(可能因?yàn)槿绱藃equire的速度比include快) 注意:包含文件不存在或者語法錯(cuò)誤的時(shí)候require是致命的,include不是17、如何修改SESSION的生存時(shí)間(1分).答:方法1:將php.ini中的session.gc_maxlifetime設(shè)置為9999重啟apache方法2:$savePath = ./session_save_dir/;$lifeTime = 小時(shí) * 秒;session_save_path($savePath);session_set_cookie_params($lifeTime);session_start();方法3:setcoo

14、kie() and session_set_cookie_params($lifeTime);18、有一個(gè)網(wǎng)頁地址, 比如PHP開發(fā)資源網(wǎng)主頁: 答:方法1(對于PHP5及更高版本):$readcontents = fopen( rb);$contents = stream_get_contents($readcontents);fclose($readcontents);echo $contents;方法2:echo file_get_contents( 19、在HTTP 1.0中,狀態(tài)碼401的含義是(?);如果返回“找不到文件”的提示,則可用 header 函數(shù),其語句為(?);(2分)

15、答:狀態(tài)401代表未被授權(quán),header(Location:www.xxx.php);12、在PHP中,heredoc是一種特殊的字符串,它的結(jié)束標(biāo)志必須?(1分)答:heredoc的語法是用加上自己定義成對的標(biāo)簽,在標(biāo)簽范圍內(nèi)的文字視為一個(gè)字符串例子:$str = SHOWmy name is Jiang Qihui!SHOW;13、談?wù)刟sp,php,jsp的優(yōu)缺點(diǎn)(1分)答:ASP全名Active Server Pages,是一個(gè)WEB服務(wù)器端的開發(fā)環(huán)境, 利用它可以產(chǎn)生和運(yùn)行動(dòng)態(tài)的、交互的、高性能的WEB服務(wù)應(yīng)用程序。ASP采用腳本語言VB Script(Java script)作為自

16、己的開發(fā)語言。 PHP是一種跨平臺的服務(wù)器端的嵌入式腳本語言. 它大量地借用C,Java和Perl語言的語法, 并耦合PHP自己的特性,使WEB開發(fā)者能夠快速地寫出動(dòng)態(tài)生成頁面.它支持目前絕大多數(shù)數(shù)據(jù)庫。還有一點(diǎn),PHP是完全免費(fèi)的,不用花錢,你可以從PHP官方站點(diǎn)()自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進(jìn)你自己需要的特色。 JSP 是Sun公司推出的新一代站點(diǎn)開發(fā)語言,他完全解決了目前ASP,PHP的一個(gè)通病腳本級執(zhí)行(據(jù)說PHP4 也已經(jīng)在Zend 的支持下,實(shí)現(xiàn)編譯運(yùn)行).Sun 公司借助自己在Java 上的不凡造詣,將Java 從Java 應(yīng)用程序 和 Java Ap

17、plet 之外,又有新的碩果,就是JspJava Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能強(qiáng)大的站點(diǎn)程序。 三者都提供在 HTML 代碼中混合某種程序代碼、由語言引擎解釋執(zhí)行程序代碼的能力。但JSP代碼被編譯成 Servlet 并由 Java 虛擬機(jī)解釋執(zhí)行,這種編譯操作僅在對 JSP 頁面的第一次請求時(shí)發(fā)生。在 ASP 、PHP、JSP 環(huán)境下, HTML 代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的 HTML 頁面只依賴于 Web 服務(wù)器,而 ASP 、PHP、JSP 頁面需要附加的語言引擎分析和執(zhí)行程序代碼。程序

18、代碼的執(zhí)行結(jié)果被重新嵌入到 HTML 代碼中,然后一起發(fā)送給瀏覽器。 ASP 、PHP、 JSP三者都是面向 Web 服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。14、談?wù)剬vc的認(rèn)識(1分)答:由模型(model),視圖(view),控制器(controller)完成的應(yīng)用程序由模型發(fā)出要實(shí)現(xiàn)的功能到控制器,控制器接收組織功能傳遞給視圖;15、寫出發(fā)貼數(shù)最多的十個(gè)人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分)答:SELECT * FROM members ORDER BY posts DESC limit 0,10;16

19、. 請說明php中傳值與傳引用的區(qū)別。什么時(shí)候傳值什么時(shí)候傳引用?(2分)答:按值傳遞:函數(shù)范圍內(nèi)對值的任何改變在函數(shù)外部都會被忽略按引用傳遞:函數(shù)范圍內(nèi)對值的任何改變在函數(shù)外部也能反映出這些修改優(yōu)缺點(diǎn):按值傳遞時(shí),php必須復(fù)制值。特別是對于大型的字符串和對象來說,這將會是一個(gè)代價(jià)很大的操作。按引用傳遞則不需要復(fù)制值,對于性能提高很有好處。17. 在PHP中error_reporting這個(gè)函數(shù)有什么作用? (1分)答:設(shè)置錯(cuò)誤級別與錯(cuò)誤信息回報(bào)18. 請寫一個(gè)函數(shù)驗(yàn)證電子郵件的格式是否正確 (2分)答:function checkEmail($email)$pregEmail=/(a-z0

20、-9*-_/.?a-z0-9+)*(a-z0-9*-_?a-z0-9+)+/.a-z2,3(/.a-z2)?/i;return preg_match($pregEmail,$email); 19. 簡述如何得到當(dāng)前執(zhí)行腳本路徑,包括所得到參數(shù)。(2分)答:$script_name = basename(_file_); print_r($script_name);21、JS表單彈出對話框函數(shù)是?獲得輸入焦點(diǎn)函數(shù)是? (2分)答:彈出對話框: alert(),prompt(),confirm()獲得輸入焦點(diǎn) focus()22、JS的轉(zhuǎn)向函數(shù)是?怎么引入一個(gè)外部JS文件?(2分)答:window

21、.location.href,23、foo()和foo()之間有什么區(qū)別?(1分)答:foo()控制錯(cuò)誤輸出24、如何聲明一個(gè)名為”myclass”的沒有方法和屬性的類? (1分)答:class myclass 25、如何實(shí)例化一個(gè)名為”myclass”的對象?(1分)答:new myclass()26、你如何訪問和設(shè)置一個(gè)類的屬性? (2分)答:$object = new myclass();$newstr = $object-test;$object-test = info;27、mysql_fetch_row() 和mysql_fetch_array之間有什么區(qū)別? (1分)答:mysq

22、l_fetch_row是從結(jié)果集取出1行數(shù)組,作為枚舉mysql_fetch_array是從結(jié)果集取出一行數(shù)組作為關(guān)聯(lián)數(shù)組,或數(shù)字?jǐn)?shù)組,兩者兼得28、GD庫是做什么用的? (1分)答:gd庫提供了一系列用來處理圖片的API,使用GD庫可以處理圖片,或者生成圖片。 在網(wǎng)站上GD庫通常用來生成縮略圖或者用來對圖片加水印或者對網(wǎng)站數(shù)據(jù)生成報(bào)表。29、指出一些在PHP輸入一段HTML代碼的辦法。(1分)答:echo aaa;30、下面哪個(gè)函數(shù)可以打開一個(gè)文件,以對文件進(jìn)行讀和寫操作?(1分)(a) fget() (b) file_open() (c) fopen() (d) open_file() c

23、 31、下面哪個(gè)選項(xiàng)沒有將 john 添加到users 數(shù)組中? (1分)(a) $users = john;(b) array_add($users,john);(c) array_push($users,john);(d) $users |= john; a , c 32、下面的程序會輸入是否?(1分)$num = 10;function multiply()$num = $num * 10;multiply();echo $num;?輸出:1033、使用php寫一段簡單查詢,查出所有姓名為“張三”的內(nèi)容并打印出來 (2分)表名UserName Tel Content Date張三 133

24、33663366 大專畢業(yè) 2006-10-11張三本科畢業(yè) 2006-10-15張四中專畢業(yè) 2006-10-15請根據(jù)上面的題目完成代碼:$mysql_db=mysql_connect(local,root,pass);mysql_select_db(DB,$mysql_db);$result = mysql_query(SELECT * FROM user WHERE name=張三);while($rs = mysql_fetch_array($result)echo $rstel.$rscontent.$rsdate; 34、如何

25、使用下面的類,并解釋下面什么意思?(3)class testfunction Get_test($num) $num=md5(md5($num).En); return $num; 答:$testnum = 123;$object = new test();$encrypt = $object-Get_test($testnum);echo $encrypt;類test里面包含Get_test方法,實(shí)例化類調(diào)用方法多字符串加密35、寫出 SQL語句的格式 : 插入 ,更新 ,刪除 (4分)表名UserName Tel Content Date張三大專畢業(yè) 2006-1

26、0-11張三本科畢業(yè) 2006-10-15張四中專畢業(yè) 2006-10-15(a) 有一新記錄(小王高中畢業(yè) 2007-05-06)請用SQL語句新增至表中mysql_query(INSERT INTO user (name,tel,content,date) VALUES (小王高中畢業(yè),2007-05-06)(b) 請用sql語句把張三的時(shí)間更新成為當(dāng)前系統(tǒng)時(shí)間$nowDate = date(Ymd);mysql_query(UPDATE user SET date=.$nowDate

27、. WHERE name=張山);(c) 請寫出刪除名為張四的全部記錄mysql_query(DELETE FROM user WHERE name=張四);36、請寫出數(shù)據(jù)類型(int char varchar datetime text)的意思; 請問varchar和char有什么區(qū)別(2分)答:int是數(shù)字類型,char固定長度字符串,varchar實(shí)際長度字符串,datetime日期時(shí)間型,text文本字符串char的場地固定為創(chuàng)建表設(shè)置的長度,varchar為可變長度的字符38、寫出以下程序的輸出結(jié)果 (1分)$b=201;$c=40;$a=$b$c?4:5;echo $a;?答:4

28、39、檢測一個(gè)變量是否有設(shè)置的函數(shù)是否?是否為空的函數(shù)是?(2分)答:isset($str),empty($str);40、取得查詢結(jié)果集總數(shù)的函數(shù)是?(1分)答:mysql_num_rows($result);41、$arr = array(james, tom, symfony); 請打印出第一個(gè)元素的值 (1分)答:echo $array0;42、請將41題的數(shù)組的值用,號分隔并合并成字串輸出(1分)答:for($i=0;$icount($arr);$i+) echo $arr $i.,;43、$a = abcdef; 請取出$a的值并打印出第一個(gè)字母(1分)答:echo $a0 或 e

29、cho substr($a,0,1)44、PHP可以和sql server/oracle等數(shù)據(jù)庫連接嗎?(1分)答:當(dāng)然可以45、請寫出PHP5權(quán)限控制修飾符(3分)答:public(公共),private(私用),protected(繼承)46、請寫出php5的構(gòu)造函數(shù)和析構(gòu)函數(shù)(2分)答:_construct , _destruct47、完成以下:(一)創(chuàng)建新聞發(fā)布系統(tǒng),表名為message有如下字段 (3分)id 文章idtitle 文章標(biāo)題content 文章內(nèi)容category_id 文章分類idhits 點(diǎn)擊量答:CREATE TABLE message(id int(10) NO

30、T NULL auto_increment,title varchar(200) default NULL,content text,category_id int(10) NOT NULL,hits int(20),PRIMARY KEY(id);)ENGINE=InnoDB DEFAULT CHARSET=utf8;(二)同樣上述新聞發(fā)布系統(tǒng):表comment記錄用戶回復(fù)內(nèi)容,字段如下 (4分)comment_id 回復(fù)idid 文章id,關(guān)聯(lián)message表中的idcomment_content 回復(fù)內(nèi)容現(xiàn)通過查詢數(shù)據(jù)庫需要得到以下格式的文章標(biāo)題列表,并按照回復(fù)數(shù)量排序,回復(fù)最高的排在最

31、前面文章id 文章標(biāo)題 點(diǎn)擊量 回復(fù)數(shù)量用一個(gè)SQL語句完成上述查詢,如果文章沒有回復(fù)則回復(fù)數(shù)量顯示為0答:SELECT message.id id,message.title title,IF(message.hits IS NULL,0,message.hits) hits,IF(comment.id is NULL,0,count(*) number FROM message LEFT JOIN comment ON message.id=comment.id GROUP BY message.id;(三)上述內(nèi)容管理系統(tǒng),表category保存分類信息,字段如下 (3分)categor

32、y_id int(4) not null auto_increment;categroy_name varchar(40) not null;用戶輸入文章時(shí),通過選擇下拉菜單選定文章分類寫出如何實(shí)現(xiàn)這個(gè)下拉菜單答:function categoryList()$result=mysql_query(select category_id,categroy_name from category)or die(Invalid query: . mysql_error();print(/n);while($rowArray=mysql_fetch_array($result)print(.$rowAr

33、raycategroy_name./n);print();編程題:1. 寫一個(gè)函數(shù),盡可能高效的,從一個(gè)標(biāo)準(zhǔn) url 里取出文件的擴(kuò)展名例如: 需要取出 php 或 .php答案1:function getExt($url)$arr = parse_url($url);$file = basename($arrpath);$ext = explode(.,$file);return $ext1;答案2:function getExt($url) $url = basename($url);$pos1 = strpos($url,.);$pos2 = strpos($url,?);if(strs

34、tr($url,?)return substr($url,$pos1 + 1,$pos2 - $pos1 - 1); else return substr($url,$pos1);2. 在 HTML 語言中,頁面頭部的 meta 標(biāo)記可以用來輸出文件的編碼格式,以下是一個(gè)標(biāo)準(zhǔn)的 meta 語句請使用 PHP 語言寫一個(gè)函數(shù),把一個(gè)標(biāo)準(zhǔn) HTML 頁面中的類似 meta 標(biāo)記中的 charset 部分值改為 big5請注意:1. 需要處理完整的 html 頁面,即不光此 meta 語句2. 忽略大小寫3. 和 在此處是可以互換的4. Content-Type 兩側(cè)的引號是可以忽略的,但 text

35、/html; charset=gbk 兩側(cè)的不行5. 注意處理多余空格3. 寫一個(gè)函數(shù),算出兩個(gè)文件的相對路徑如 $a = /a/b/c/d/e.php;$b = /a/b/12/34/c.php;計(jì)算出 $b 相對于 $a 的相對路徑應(yīng)該是 ././c/d將()添上答:function getRelativePath($a, $b) $returnPath = array(dirname($b); $arrA = explode(/, $a); $arrB = explode(/, $returnPath0); for ($n = 1, $len = count($arrB); $n 0)

36、$returnPath = array_merge($returnPath, array_fill(1, $len - $n, .); $returnPath = array_merge($returnPath, array_slice($arrA, $n); return implode(/, $returnPath); echo getRelativePath($a, $b); 填空題:1.在PHP中,當(dāng)前腳本的名稱(不包括路徑和查詢字符串)記錄在預(yù)定義變量_$_SERVERPHP_SELF_中;而鏈接到當(dāng)前頁面的URL記錄在預(yù)定義變量_$_SERVERHTTP_REFERER_中2.執(zhí)行

37、程序段將輸出_0_。3.在HTTP 1.0中,狀態(tài)碼 401 的含義是_;如果返回“找不到文件”的提示,則可用 header 函數(shù),其語句為_。4.數(shù)組函數(shù) arsort 的作用是_對數(shù)組進(jìn)行逆向排序并保持索引關(guān)系_;語句 error_reporting(2047)的作用是_報(bào)告所有錯(cuò)誤和警告_。5.PEAR中的數(shù)據(jù)庫連接字符串格式是_。6.寫出一個(gè)正則表達(dá)式,過慮網(wǎng)頁上的所有JS/VBS腳本(即把scrpt標(biāo)記及其內(nèi)容都去掉):preg_replace(/.*?.*?/si, newinfo, $script);7.以Apache模塊的方式安裝PHP,在文件http.conf中首先要用語句_

38、動(dòng)態(tài)裝載PHP模塊,然后再用語句_使得Apache把所有擴(kuò)展名為php的文件都作為PHP腳本處理。LoadModule php5_module c:/php/php5apache2.dll , AddType application/x-httpd-php .php,8.語句 include 和 require 都能把另外一個(gè)文件包含到當(dāng)前文件中,它們的區(qū)別是_;為了避免多次包含同一文件,可以用語句_require_once|include_once_來代替它們。9.類的屬性可以序列化后保存到 session 中,從而以后可以恢復(fù)整個(gè)類,這要用到的函數(shù)是_。10.一個(gè)函數(shù)的參數(shù)不能是對變量的引

39、用,除非在php.ini中把_allow_call_time_pass_reference boolean_設(shè)為on.11.SQL中LEFT JOIN的含義是_自然左外鏈接_。如果 tbl_user記錄了學(xué)生的姓名(name)和學(xué)號(ID),tbl_score記錄了學(xué)生(有的學(xué)生考試以后被開除了,沒有其記錄)的學(xué)號(ID)和考試成績(score)以及考試科目(subject),要想打印出各個(gè)學(xué)生姓名及對應(yīng)的的各科總成績,則可以用SQL語句_。12.在PHP中,heredoc是一種特殊的字符串,它的結(jié)束標(biāo)志必須_。編程題:13.寫一個(gè)函數(shù),能夠遍歷一個(gè)文件夾下的所有文件和子文件夾。答:funct

40、ion my_scandir($dir)$files = array();if ( $handle = opendir($dir) ) while ( ($file = readdir($handle) != false ) if ( $file != . & $file != . ) if ( is_dir($dir . / . $file) ) $files$file = scandir($dir . / . $file);else $files = $file;closedir($handle);return $files;14.簡述論壇中無限分類的實(shí)現(xiàn)原理。答:query( $sql

41、);while ($rows = $DB-fetch_array($result) $category_array$rowscategoryParentID$rowscategoryID = array(id = $rowscategoryID, parent = $rowscategoryParentID, name = $rowscategoryName);if (!isset($category_array$category_id)return ;foreach($category_array$category_id AS $key = $category) if ($categoryi

42、d = $default_category)echo option selected value=.$categoryid.;elseecho 0)echo . str_repeat( , $level ) . . $categoryname . /n;elseecho . $categoryname . /n;Get_Category($key, $level + 1, $default_category);unset($category_array$category_id);/*函數(shù)返回的數(shù)組格式如下所示:Array (1 = Array ( id = 1 name = 一級類別 leve

43、l = 0 ParentID = 0 )4 = Array ( id = 4 name = 二級類別 level = 1 ParentID = 1 )9 = Array ( id = 9 name = 哈哈 level = 2 ParentID = 4 )3 = Array ( id = 3 name = 二級類別 level = 1 ParentID = 1 ) 8 = Array ( id = 8 name = aqqqqqd level = 2 ParentID = 3 )2 = Array ( id = 2 name = 二級類別 level = 1 ParentID = 1 )7 =

44、 Array ( id = 7 name = 234234 level = 2 ParentID = 2 )6 = Array ( id = 6 name = 333332 level = 2 ParentID = 2 ) 5 = Array ( id = 5 name = 三級類別 level = 2 ParentID = 2 ) 10 = Array ( id = 10 name = 66333666 level = 3 ParentID = 5 ) )*/指定分類id,然后返回?cái)?shù)組function Category_array($category_id = 0,$level=0)global $DB;$sql = SELECT * FROM category ORDER BY categoryID DESC;$result = $DB-query($sql);while ($rows

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論