第一篇:PHP筆試題+答案
程序開發(fā) 卷1
PHP程序員考題
考試說明:
1、試卷總分為100分。
2、本次考試時間為120分鐘。
一、邏輯推理題(9分,每題3分)
1.Jack夫婦請了Tom夫婦和Henrry夫婦來他們家玩撲克。這種撲克游戲有一種規(guī)則,夫婦兩個不能一組。Jack跟Lily一組,Tom的隊友是Henrry的妻子,Linda的丈夫和Sara一組。那么這三對夫婦分別為:(B)A. Jack—Sara,Tom—linda,Henrry—Lily B. Jack—Sara,Tom—Lily,Henrry—linda C. Jack—linda,Tom—Lily,Henrry—Sara D. Jack—Lily,Tom—Sara,Henrry—linda
2.有17根11.1米長的鋼管,要截成1.0米和0.7米的甲、乙兩種長度的管子,要求截成的甲、乙兩種管子的數(shù)量一樣多。問:最多能截出甲、乙兩種管子各多少根?(C)A.99 B.105 C.111 D.121
3.一個水庫在年降水量不變的情況下,能夠維持全市12萬人20年得用水量。在該市新遷入3萬人之后,該水庫只夠維持15年得用水量。市政府號召節(jié)約用水,希望能將水庫的使用壽命提高到30年。那么該市市民平均需要節(jié)約多少比例的水才能實現(xiàn)政府制定的目標(biāo)?(A)A.2/5 B.2/7 C.1/3 D.1/4
二、PHP語言題(36分,每題3分)
1.語句for($k=0;$k=1;$k++);和語句for($k=0;$k==1;$k++);執(zhí)行的次數(shù)分別是(3分): A 無限和0 B 0和無限 C 都是無限 D 都是0 參考答案:A
2.讀取post方法傳遞的表單元素值的方法是(3分): A $_post[“名稱”] B $_POST[“名稱”] C $post[“名稱”] D $POST[“名稱”] 參考答案:B
3.下面哪個函數(shù)可以打開一個文件,以對文件進(jìn)行讀和寫操作?(3分)A fget()
程序開發(fā) 卷1
B file_open()C fopen()D open_file()參考答案:C
4.下面哪個選項沒有將 john 添加到users 數(shù)組中?(3分)(a)$users[] = ‘john’;(b)array_add($users,’john’);(c)array_push($users,‘john’);(d)$users ||= ‘john’;參考答案:B
5.PHP是一種______腳本語言,基于______引擎。PHP最常被用來開發(fā)動態(tài)的______內(nèi)容,此外,它同樣還可被用來生成______(以及其他)文檔。(3分)A.動態(tài),PHP,數(shù)據(jù)庫,HTML B.嵌入式,Zend,HTML,XML C.基于Perl的,PHP,Web,靜態(tài) D.嵌入式,Zend,Docbook文檔,MySQL E.基于Zend的,PHP,圖像,HTML 參考答案:B
6.函數(shù)的形參與實參之間的數(shù)值傳遞方式有哪些?如何傳遞?(5分)
答:(1)按值傳遞方式,將實參的值復(fù)制到對應(yīng)的形參中,在函數(shù)內(nèi)部的操作針對形參進(jìn)行,操作的結(jié)果不會影響到實參,即函數(shù)返回值,實參的值不會改變。
(2)按引用傳遞方式,按引用傳遞方式就是引用將實參的內(nèi)存地址傳遞到形參中,這時在函數(shù)內(nèi)部的所有的操作都會影響到實參的值,返回后實參的值會發(fā)生變化,引用傳遞方式就是傳遞時在原基礎(chǔ)上加&號即可。
(3)默認(rèn)函數(shù)(可選參數(shù))??蛇x參數(shù)指定某個參數(shù)為可選參數(shù),將可選參數(shù)放在參數(shù)引表末尾,并且指定其默認(rèn)值為空。
7.定義:$str=”a1b2c3”,請寫出下面兩種匹配的結(jié)果以及解釋一下兩者的區(qū)別。(5分)preg_match(‘/[w]*[d]+/i’),$str,$ary);echo $ary[0];preg_match(‘/[w]*?[d]+/i’,$str,$ary);echo $ary[0];參考答案:第一個輸出為a1b2c3,第二個輸出為a1。
區(qū)別主要是[w]*,后面有沒有跟問號,PHP的正則匹配模式默認(rèn)為貪婪模式,即第一個模式,表示*取盡量多的匹配字符,第二個加了個限定符?,為非貪婪(或懶惰模式),表示*取盡量少的匹配字符。(能寫出貪婪和懶惰的區(qū)別,正則表達(dá)式已經(jīng)沒大問題了。)
8.session和cookies 有什么區(qū)別?如果瀏覽器禁用了cookies,session還可以使用嗎?為什么?(5分)
參考答案:cookies存儲在客戶端,session存儲在服務(wù)端。瀏覽器禁用了cookies,session也不可以使用,因為sesession是需要客戶端發(fā)送一個sessionid到服務(wù)端,禁用了cookies,客戶端就不能保存此sessionid,session也失效了。(session是常用的,考察使用的熟悉程度)
程序開發(fā) 卷1
9.PHP二進(jìn)制數(shù)據(jù)流是處理是用什么函數(shù)的?(4分)參考答案:pack和unpack。(與服務(wù)端通信用到的解析方法)
10.求兩個日期的差數(shù),例如2009-3-1 ~ 2009-4-4 的日期差數(shù)?(4分)答:(strtotime(‘2009-4-4’)-strtotime(‘2009-3-1’))/3600*24
三、Linux操作題(20分,每題5分)1.請盡量寫出你熟悉的linux文件操作命令及其作用。
參考答案:自由發(fā)揮.基本的文件操作命令rm(移除),mv(移動),cp(復(fù)制),chmod(改權(quán)限),pwd(查看當(dāng)前路徑),mkdir(創(chuàng)建目錄)ls(列舉當(dāng)前目錄)2.3.4.簡述linux下,rsync同步命令怎么實現(xiàn)無需輸入密碼數(shù)據(jù)同步?(5分)
參考答案:在機器1上生成公鑰私鑰對,將生成的公鑰復(fù)制至機器2,加入到~/.ssh/id_dsa.pub。即可實現(xiàn)無密碼同步。(同步?jīng)]問題了)
四、綜合問答題(35分,每題5分)1.LAMP,LNMP分別指什么?
參考答案:LAMP:linux,apache,mysql,php LNMP:linux,nginx,mysql,php Linux文本編輯器vim(vi)命令行模式下有:q,:w, /word ,?word表示什么? 參考答案::q退出,:w保存,/word往下查找,?word往上查找.(熟悉linux編輯)linux怎么添加定時任務(wù)? 參考答案:crontab –e
2.11.請使用偽語言結(jié)合數(shù)據(jù)結(jié)構(gòu)冒泡排序法對以下一組數(shù)據(jù)進(jìn)行排序 10 2 36 14 10 25 23 85 99 45。
答:
$str=’10 2 36 14 10 25 23 85 99 45′;$arr=explode(‘ ‘,$str);$count=count($arr);for($i=0;$i<$count;$i++){ for($j=$i+1;$j<$count;$j++){ if($arr[$j]<$arr[$i]){ $temp=$arr[$i];$arr[$i]=$arr[$j];$arr[$j]=$temp;} } } $str1=implode(‘ ‘,$arr);echo$str1;
3.簡述mysql中union all,left join的用法。
程序開發(fā) 卷1
參考答案:Union all將兩次或多次查詢的結(jié)果合并。
Left join從左表那里返回所有的行,即使在右表中沒有匹配的行。(這兩個能記住,mysql也比較熟了)
4.Mysql 優(yōu)化有什么方法?
參考答案:簡單點的就是程序員寫高質(zhì)量的sql語句,數(shù)據(jù)庫設(shè)計優(yōu)秀,按需要建立索引(重點)。深入點的,優(yōu)化mysql配置。
5.一個表中的Id有多個記錄,把所有這個id的記錄查出來,并顯示共有多少條記錄數(shù),用SQL語句及視圖、存儲過程分別實現(xiàn)。
create procedure proc_countNum(in columnId int,out rowsNo int)begin select count(*)into rowsNo from member where member_id=columnId;end call proc_countNum(1,@no);select @no;方法:視圖:
create view v_countNum as select member_id,count(*)as countNum from member group by member_id select countNum from v_countNum where member_id=1
6.請舉例說明在你的開發(fā)過程中用什么方法來加快頁面的加載速度
參考答案:自由發(fā)揮題,言之有理即可(如:要用到服務(wù)器資源時才打開,及時關(guān)閉服務(wù)器資源,數(shù)據(jù)庫添加索引,頁面可生成靜態(tài),圖片等大文件單獨服務(wù)器。使用代碼優(yōu)化工具)。
7.對于大流量的網(wǎng)站,您采用什么樣的方法來解決訪問量問題? 參考答案:確認(rèn)服務(wù)器硬件是否足夠支持當(dāng)前的流量,數(shù)據(jù)庫讀寫分離,優(yōu)化數(shù)據(jù)表,控制大文件的下載,使用不同主機分流主要流量確認(rèn)服務(wù)器硬件是否足夠支持當(dāng)前的流量,數(shù)據(jù)庫讀寫分離,優(yōu)化數(shù)據(jù)表,程序功能規(guī)則,禁止外部的盜鏈,控制大文件的下載,使用不同主機分流主要流量。
第二篇:PHP程序員筆試題(附答案)
普通PHP程序員筆試題
標(biāo)簽:程序員PHP面試2009-02-06 15:19
1.用PHP打印出前一天的時間,打印格式是2007年5月10日 22:21:21
2.PHP代碼如下:
$a=“hello”;
$b=&$a;
unset($b);
$b=“world”;
echo $a;
其結(jié)果是?
3.PHP代碼如下:
$str=“cd”;
$$str=“l(fā)andog”;
$$str.=“ok”;
echo $cd;
其結(jié)果是?
4.用PHP寫一段代碼,實現(xiàn)不使用第3個變量,交換$a、$b的值,$a、$b的初始值自己定。
5.根據(jù)題目要求,用PHP寫出代碼。
表名User
IDNameTelContentDate
1張三 ***大專畢業(yè)2006-10-11
3張三 ***本科畢業(yè)2006-10-15
5張四 020-5566556中專畢業(yè)2006-10-15
4王五 ***大專畢業(yè)2006-12-25
2????
6????
假設(shè)數(shù)據(jù)庫連接如下:
$mysql_db=mysql_connect(“l(fā)ocal”,“root”,“pass”);
@mysql_select_db(“DB”,$mysql_db);
(1)查詢出所有Name等于“張三”的記錄,并輸出。
(2)按ID升序查詢,只返回排序后的前3條記錄,并輸出。
6.javascript能否定義二維數(shù)組,如果不能你如何解決?
7.假設(shè)a.html和b.html在同一個文件夾下面,用javascript實現(xiàn)當(dāng)打開a.html五秒鐘后,自動跳轉(zhuǎn)到b.html。
8.有兩個文件a.html和a.php,代碼如下:
a.html
a.php
$user_name = $_GET['user_name'];
$user_tel = $_GET['user_tel'];
$user_email = $_GET['user_email'];
$user_add = $_GET['user_add'];
echo “用戶名:$user_name
電話:$user_tel
郵箱:$user_email
地址:$user_add
”;
?>
(1)請畫出a.html在瀏覽器的顯示效果圖。
(2)在a.html中輸入:用戶名=張三,電話=020-38259977,郵箱=sunrising@srtek.cn,地址=廣州升瑞,按提交按鈕后輸出結(jié)果是?
9.你是否使用過版本控制工具,如果有,請簡要說明。
10.利用CSS樣式表定義已訪問的超鏈接字體大小為14pt,顏色為red。
11.移動任意一位數(shù)或符號,使等式成立, 102 = 101-1。注:是移動不是交換,等號不能分開。
12.規(guī)律題,3、1、4、1、5、9、2、(), 請按照規(guī)律在括號內(nèi)寫出下一表達(dá)式。
13.規(guī)律題,5、8、-
3、5、-
2、3、-
1、(),請按照規(guī)律在括號內(nèi)寫出下一表達(dá)式。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
答案:
1.echo date('Y-m-d H:i:s', strtotime('-1 day'));
2.hello
3.landogok
4.$a = “abcd”;
$b = “1234”;
echo “初始化時 a=$a,b=$b
”;
$a = $a.$b;
$b = strlen($b);
$b = substr($a, 0,(strlen($a)-$b));
$a = substr($a, strlen($b));
echo “交換后 a=$a,b=$b
”;
5.(1)$sql = “select *from User where >$result = mysql_query($sql);while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
echo $row[‘Name’];
}
(2)$sql = “select * from User order by ID asc limit 0,3”;
$result = mysql_query($sql);
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
echo $row[‘Name’];
}
6.javascript不支持二維數(shù)組定義,可以用arr[0] = new array()來解決
7.javascript代碼如下:
8.(1)如下所示:
略。因為懶得插入圖片,如果想看結(jié)果可以把代碼保存為html文件,再用瀏覽器打開查看。
(2)輸出結(jié)果應(yīng)為:
姓名:
電話:
郵箱:
地址:
因為表單是用post方式提交,但在a.php中卻用get方式來讀取,所以不會讀到任何值。
9.略
10.a:visited { font-size: 14pt;color: red;}
11.102 = 101-1
12.答案為6,因為∏=3.1415926
13.答案為2,規(guī)律為n=(n-2)– |(n-1)| ,n>=3
第三篇:PHP程序員筆試題
姓名:________________
開始時間:________________(完成時間1個小時)
1、HTTP 協(xié)議里 GET和POST請求的區(qū)別
2、session與cookie的區(qū)別
3、數(shù)據(jù)庫中的事務(wù)是什么?
4、優(yōu)化MYSQL數(shù)據(jù)庫的方法,舉例說明。(多寫多得,可寫在反面)
5、PHP語句include和require的區(qū)別是什么
6、JS表單彈出對話框函數(shù)是什么?獲得輸入焦點函數(shù)是什么?
7、下面的PHP5程序的輸出值是什么?
$num = 10;
function multiply(){ $num = $num * 10;
}
multiply();
echo $num;?>
8、PHP檢測一個變量是否有設(shè)置的函數(shù)是什么?
9、談?wù)剬vc的認(rèn)識?
10、一個整數(shù)數(shù)組包含10個元素,未排好序
9,16,25,32,2,1,29,81,36,21 寫一個PHP程序,1)對數(shù)組進(jìn)行排序
2)用二分法查找并輸出 20 這個數(shù)在數(shù)組中的序(序號從1開始,查找不到返回0),寫在反面
11、請寫一個PHP函數(shù)驗證電子郵件的格式是否正確
12、寫出Linux下 創(chuàng)建目錄、刪除目錄、刪除文件、查看指定目錄內(nèi)容、移動文件的命令,并舉例說明
13、CSS中margin和padding的區(qū)別
14、簡述ajax的原理
15、假設(shè)給你5臺服務(wù)器,請大致的描述一下,如何使用你所熟悉的軟件,搭建一個日PV 100萬左右的中型網(wǎng)站,包括數(shù)據(jù)庫、WEB服務(wù)
第四篇:普通PHP程序員筆試題
普通PHP程序員筆試題
整理于2012-7-3,自己整理的,已經(jīng)測試過,僅供參考
1.用PHP打印出前一天的時間,打印格式是2007年5月10日 22:21:21
echo date('Y年m月d日 H:i:s',strtotime('-1 day'));
2.PHP代碼如下:
$a=“hello”;
$b=&$a;
unset($b);
$b=“world”;
echo $a;
其結(jié)果是?
hello
3.PHP代碼如下:
$str=“cd”;
$$str=“l(fā)andog”;
$$str.=“ok”;
echo $cd;
其結(jié)果是?
landogok
4.用PHP寫一段代碼,實現(xiàn)不使用第3個變量,交換$a、$b的值,$a、$b的初始值自己定$a='2.0';
$b='3.0';list($b,$a)=array($a,$b);
echo $a.'
'.$b;
5.根據(jù)題目要求,用PHP寫出代碼。
表名User
IDNameTelContentDate
1張三 ***大專畢業(yè)2006-10-11
3張三 ***本科畢業(yè)2006-10-15
5張四 020-5566556中專畢業(yè)2006-10-15
4王五 ***大專畢業(yè)2006-12-25
2????
6????
假設(shè)數(shù)據(jù)庫連接如下:
$mysql_db=mysql_connect(“l(fā)ocal”,“root”,“pass”);
@mysql_select_db(“DB”,$mysql_db);
(1)查詢出所有Name等于“張三”的記錄,并輸出。
$sql=“select * from user where name='張三'”;
mysql_query(“set names 'gbk'”);
$result=mysql_query($sql)or die('false');
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
foreach($row as $key=>$value){
echo $key.':'.$value.“ ”;
}
echo “
”;
}
(2)按ID升序查詢,只返回排序后的前3條記錄,并輸出。
$sql=“select * from user order by id asc limit 0,3”;
mysql_query(“set names 'gbk'”);
$result=mysql_query($sql)or die('false');
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
foreach($row as $key=>$value){
echo $key.':'.$value.“ ”;
}
echo “
”;
}
6.javascript能否定義二維數(shù)組,如果不能你如何解決?
看了很多資料,發(fā)現(xiàn)很多都說JS不支持二維數(shù)組,不過在JS中對二維數(shù)組的定義卻有很多方法,以下是其中四種:
7.假設(shè)a.html和b.html在同一個文件夾下面,用javascript實現(xiàn)當(dāng)打開a.html五秒鐘后,自動跳轉(zhuǎn)到b.html。
前提是a.html已打開
8.有兩個文件a.html和a.php,代碼如下:
a.html
a.php
$user_name = $_GET['user_name'];
$user_tel = $_GET['user_tel'];
$user_email = $_GET['user_email'];
$user_add = $_GET['user_add'];
echo “用戶名:$user_name
電話:$user_tel
郵箱:$user_email
地址:$user_add
”;
?>
(1)請畫出a.html在瀏覽器的顯示效果圖。
略
(2)在a.html中輸入:用戶名=張三,電話=020-38259977,郵箱=sunrising@srtek.cn,地址=廣州升瑞,按提交按鈕后輸出結(jié)果是?
輸出結(jié)果為:
用戶名:
電話:
郵箱:
地址:
9.你是否使用過版本控制工具,如果有,請簡要說明。
10.利用CSS樣式表定義已訪問的超鏈接字體大小為14pt,顏色為red。
a:visited{font-size:14pt;color:red;}
11.移動任意一位數(shù)或符號,使等式成立, 102 = 101-1。注:是移動不是交換,等號不能分開。
將2上移變成10的平方等于101-1,10=101-1
12.規(guī)律題,3、1、4、1、5、9、2、(6), 請按照規(guī)律在括號內(nèi)寫出下一表達(dá)式。這一串?dāng)?shù)字是π=3.1415926中的數(shù)字,所以為6
13.規(guī)律題,5、8、-
3、5、-
2、3、-
1、(2),請按照規(guī)律在括號內(nèi)寫出下一表達(dá)式。n=|n-2|-|n-1| 2
第五篇:php試題及答案
php試題及答案
問題
1. 考慮如下腳本。標(biāo)記處應(yīng)該添加什么代碼才能讓腳本輸出字符串 php? $alpha = 'abcdefghijklmnopqrstuvwxyz';$letters = array(15, 7, 15);foreach($letters as $val){/* 這里應(yīng)該加入什么 */ } ?> A.echo chr($val);B.echo asc($val);C.echo substr($alpha, $val, 2);D.echo $alpha{$val};E.echo $alpha{$val+1} 2. 以下哪一項不能把字符串$s1 和$s2 組成一個字符串? A.$s1 + $s2 B.”{$s1}{$s2}” C.$s1.$s2 D.implode(”, array($s1,$s2))E.以上都可以
3. 變 量 $email 的 值 是 字 符 串 user@example.com,把 字 符 串 轉(zhuǎn) 化 成 example.com?
A.substr($email, strpos($email, “@”));
下 哪 項 能 以 B.strstr($email, “@”);C.strchr($email, “@”);
D.substr($email, strpos($email, “@”)+1);E.strrpos($email, “@”);
4. 給定一個用逗號分隔一組值的字符串,以下哪個函數(shù)能在僅調(diào)用一次的情況下就把每
個獨立的值放入一個新創(chuàng)建的數(shù)組? A.strstr()B.不可能只調(diào)用一次就完成 C.extract()D.explode()E.strtok()5. 要比較兩個字符串,以下那種方法最萬能? A.用 strpos 函數(shù) B.用==操作符 C.用 strcasecmp()D.用 strcmp()6. 以下哪個 PCRE 正則表達(dá)式能匹配字符串 php|architect? A..* B.…|……… C.d{3}|d{8} D.[az]{3}|[az]{9} E.[a-z][a-z][a-z]|w{9} 7. 以下哪些函數(shù)能用來驗證字符串的完整性?(三選)A.md5()B.sha1()C.str_rot13()D.crypt()E.crc32()8. 哪個 PHP 函數(shù)與以下腳本在 UNIX 系統(tǒng)下執(zhí)行的效果近似? function my_funct($filename){ $f = file_get_contents($filename);return explode(“n”, $f);} ?> A.fopen()B.fread()C.flock()D.split_string()E.file()9. 基于指定的式樣(pattern)把一個字符串分隔開并放入數(shù)組,以下哪些函數(shù)能做到?(雙 選)
A.preg_split()B.ereg()C.str_split()D.explode()E.chop()10.以下腳本輸出什么?
echo 'Testing '.1 + 2.'45';?> A.Testing 1245 B.Testing 345 C.Testing 1+245 D.245 E.什么都沒有
11.以下腳本輸出什么? $s = '12345';$s[$s[1]] = '2';echo $s;?> A.12345 B.12245 C.22345 D.11345 E.Array 12.方框中的正則表達(dá)式能與以下哪些選項匹配?(雙選)/.**123d/ A.******123 B.*****_1234 C.******1234
D._*1234 E._*123 13.以下哪個比較將返回 true?(雙選)A.’1top’ == ’1′ B.’top’ == 0 C.’top’ === 0 D.’a’ == a E.123 == ’123′
14.如果用+操作符把一個字符串和一個整型數(shù)字相加,結(jié)果將怎樣? A.解釋器輸出一個類型錯誤
B.字符串將被轉(zhuǎn)換成數(shù)字,再與整型數(shù)字相加 C.字符串將被丟棄,只保留整型數(shù)字 D.字符串和整型數(shù)字將連接成一個新字符串 E.整形數(shù)字將被丟棄,而保留字符串
15.考慮如下腳本。假設(shè) http://004km.cnpile-time)包含一
個 PHP 腳本使用______。A.include_once, include B.require, include C.require_once, include D.include, require E.以上皆可
16.什么情況下聲明函數(shù)時不能給參數(shù)賦默認(rèn)值? A.當(dāng)參數(shù)是布爾值時 B.當(dāng)函數(shù)是類中的成員時 C.當(dāng)參數(shù)是通過引用傳遞時 D.當(dāng)函數(shù)只有一個參數(shù)時 E.永遠(yuǎn)不會
17.______操作符在兩個操作數(shù)中有一個(不是全部)為 True 時返回 True。答案:____________ 18.全等運算符===如何比較兩個值?
A.把它們轉(zhuǎn)換成相同的數(shù)據(jù)類型再比較轉(zhuǎn)換后的值 B.只在兩者的數(shù)據(jù)類型和值都相同時才返回 True 8 C.如果兩個值是字符串,則進(jìn)行詞匯比較 D.基于 strcmp 函數(shù)進(jìn)行比較 E.把兩個值都轉(zhuǎn)換成字符串再比較
19.以下哪個選項是把整型變量$a 的值乘以 4?(雙選)A.$a *= pow(2, 2);B.$a >>= 2;C.$a <<= 2;D.$a += $a + $a;E.一個都不對
20.一段腳本如何才算徹底終止? A.當(dāng)調(diào)用 exit()時 B.當(dāng)執(zhí)行到文件結(jié)尾時 C.當(dāng) PHP 崩潰時
D.當(dāng) Apache 由于系統(tǒng)故障而終止時
答案
1. 唯一有意義的答案是 B。PHP 是一種基于 Zend 引擎的腳本語言,它通常被嵌入在 HTML 代碼中。它主要被用來開發(fā) HTML 文檔,但是也可以用它來開發(fā)其他類型的文檔,比 如 XML。
2. PHP 編程中,人們不太使用<% %>和兩個標(biāo)簽,但它們確實是合法的 PHP 界定符。
標(biāo)簽是非法的,因此正確的答案是 D。記住,根據(jù) php.ini 文件中的配置不同,這
當(dāng)中的某些標(biāo)簽無法在特定的情況下使用。
3. PHP 變量以一個美元符號為開頭,后面跟上任意數(shù)量的數(shù)字、字母和下劃線。${“MyVar”}
是一個合法的變量名,它使用的是較松散的命名約定。&$something 是對$something 的
引用。然而,變量名不能以數(shù)字為開頭,$10_somethings 是非法的,因此答案是 D。
4. 注意,$myarray 的鍵值并沒有打上引號。所以,正在訪問的鍵不是 myvalue 字符串,而是常量 myvalue 的值。最終訪問的是$myarray[10],值是 Dog,答案是 A。5. 盡管 print()和 echo()在絕大多數(shù)情況下可以互換使用,但它們之間還是有一處不同。
print()是函數(shù),有返回值;echo()實際上是一個語言結(jié)構(gòu),沒有返回值,并且不能在表
達(dá)式中使用。因此,答案是 A。
6. %運算符表示取模,它返回兩個操作數(shù)相除的余數(shù)。<<是左移運算符,相當(dāng)于乘以 2 的 N 次方。最后的答案乘以了一個浮點數(shù),改變了它的數(shù)據(jù)類型。但是,由于小數(shù)點
后是零,因此輸出的結(jié)果不包含小數(shù)部分。答案是 256(D)。
7. 根據(jù)條件式的邏輯,要想得到 Hello, World!字符串,必須要在第一個 if 結(jié)構(gòu)中滿足 else 的條件。因此$a 必須為 False,然后$b 也必須為 False。最內(nèi)層的條件語句的實現(xiàn)要求
先前的兩個變量($a 和$b)是 False,而$c 必須是 True(答案是 D)。8. 正確答案是 C。從 PHP4.2.0 開始,除非已經(jīng)給定了一個偽隨機整數(shù)列,否則不再需要
用 srand()函數(shù)初始化隨機數(shù)生成器。此外,即使隨機數(shù)生成器沒有被事先播種,腳本
仍然會生成 49 個偽隨機字符。盡管$array 變量是字符串,但可以用訪問數(shù)組的方式進(jìn)
行訪問——使用數(shù)字索引訪問某個位置上的字符。最后,for 循環(huán)將從 1 開始執(zhí)行到 50,也就是執(zhí)行了 49 次。
9. 用一系列的 if…else 語句來檢查一個條件的代碼塊,最適合用 switch 語句來替代。switch($a){ case 'a': somefunction();break;case 'b': 10 anotherfunction();break;case 'c': dosomething();break;default: donothing();} ?> 因為 if 語句中有一個捕捉所有其他條件的 else,對應(yīng)的,switch 代碼塊需要一個 default。正確答案是 E。
10.通常情況下,foreach 語句是遍歷數(shù)組的首選。但是,由于 foreach 語句是在數(shù)組的副
本上進(jìn)行操作,而我們需要給數(shù)組中每個元素重新賦值,所以在這里 foreach 就不適用
了。盡管也可以用 while 循環(huán)和 do…while 循環(huán),但由于數(shù)組是順序索引的,最合適的
語句還是 for 語句。因此答案是 A。
$myarray = array(“My String”, “Another String”, “Hi, Mom!”);for($i = 0;$i < count($myarray);$i++){ $myarray[$i].= “($i)”;} ?> 11.由于題目只允許填寫一行代碼,唯一合適的是 for 循環(huán),因此答案只能是 C 或者 D。
要選出能生成正確結(jié)果的 for 循環(huán),我們必須先復(fù)習(xí)一下 for 循環(huán)的構(gòu)成要素。PHP 中,for 循環(huán)是這樣聲明的:
for(<初始化>;<繼續(xù)執(zhí)行,直到>;<重復(fù)執(zhí)行>)<初始化>在循環(huán)開始時執(zhí)行一次,然后 for 循環(huán)開始執(zhí)行大括號內(nèi)的代碼,直到<繼續(xù) 執(zhí)行,直到>的值為 False。每完成一次循環(huán),執(zhí)行一次<重復(fù)執(zhí)行>。因此,正確的代 碼塊應(yīng)該是:
for($idx = 1;$idx < STOP_AT;$idx *= 2)答案是 C。
12.5 個選項中,只有兩個是合法的 PHP 函數(shù)聲明(A 和 D)。在這兩個選項中,只有一
個設(shè)置了參數(shù)的默認(rèn)值——答案是 A。
13.本題考察 PHP 中變量作用域的相關(guān)知識。你必須明確 global 關(guān)鍵字是如何將變量引入
本地域的,以及$_GET、$_POST、$_COOKIE、$_REQUEST 等超級全局變量的作用 域。本題中,最終的數(shù)學(xué)表達(dá)式是 5+25-25-10,等于-5,答案是 B。14.函數(shù)能被以一個包含著函數(shù)名的變量后面加上括號(以及必要的參數(shù))的形式動態(tài)
調(diào)用。對于Group A來說,合適的索引組合是0,4,9,9,9,9,產(chǎn)生字符串myfunction。
另一方面,參數(shù)將使用${}結(jié)構(gòu)的可變變量。對Group B來說,合適的索引應(yīng)該是7 和8,等于${‘a(chǎn)’}$和{‘b’}——即$a和$b。因此答案是D。
15.在較新版本的 PHP 中,require(或 requier_once())和 include()(或 include_once())只有
一個區(qū)別——如果包含的文件不存在,前者將產(chǎn)生一個致命錯誤,同時終止腳本的執(zhí)
行;而后者只會產(chǎn)生一個警告。因此答案 E 正確。
16.當(dāng)參數(shù)被聲明為通過引用傳遞時,你不能給它賦默認(rèn)值,此時解釋器期望獲得一個能
在函數(shù)內(nèi)部進(jìn)行修改的變量。答案是 C。17.正確答案是邏輯異或(xor)運算符。18.全等運算符比較兩個操作數(shù)的數(shù)據(jù)類型和值,兩者中有一個不同,都會返回 False。因 此答案是 B。
19.答案是 A 和 C。A 選項中,pow 函數(shù)計算 2 的平方,答案是 4。C 選項中,左移運算
符將$a 的值左移兩位,相當(dāng)于乘以 4。
20.答案是 A。一段腳本并不會在執(zhí)行到文件末尾時終止,所以當(dāng)前文件才能被其他腳本
包含。至于 PHP 和 Apache 崩潰,這兩個說法就太惡搞了。