第一篇:PHP笔试题+答案
程序开发 卷1
PHP程序员考题
考试说明:
1、试卷总分为100分。
2、本次考试时间为120分钟。
一、逻辑推理题(9分,每题3分)
1.Jack夫妇请了Tom夫妇和Henrry夫妇来他们家玩扑克。这种扑克游戏有一种规则,夫妇两个不能一组。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米的甲、乙两种长度的管子,要求截成的甲、乙两种管子的数量一样多。问:最多能截出甲、乙两种管子各多少根?(C)A.99 B.105 C.111 D.121
3.一个水库在年降水量不变的情况下,能够维持全市12万人20年得用水量。在该市新迁入3万人之后,该水库只够维持15年得用水量。市政府号召节约用水,希望能将水库的使用寿命提高到30年。那么该市市民平均需要节约多少比例的水才能实现政府制定的目标?(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++);执行的次数分别是(3分): A 无限和0 B 0和无限 C 都是无限 D 都是0 参考答案:A
2.读取post方法传递的表单元素值的方法是(3分): A $_post[“名称”] B $_POST[“名称”] C $post[“名称”] D $POST[“名称”] 参考答案:B
3.下面哪个函数可以打开一个文件,以对文件进行读和写操作?(3分)A fget()
程序开发 卷1
B file_open()C fopen()D open_file()参考答案:C
4.下面哪个选项没有将 john 添加到users 数组中?(3分)(a)$users[] = ‘john’;(b)array_add($users,’john’);(c)array_push($users,‘john’);(d)$users ||= ‘john’;参考答案:B
5.PHP是一种______脚本语言,基于______引擎。PHP最常被用来开发动态的______内容,此外,它同样还可被用来生成______(以及其他)文档。(3分)A.动态,PHP,数据库,HTML B.嵌入式,Zend,HTML,XML C.基于Perl的,PHP,Web,静态 D.嵌入式,Zend,Docbook文档,MySQL E.基于Zend的,PHP,图像,HTML 参考答案:B
6.函数的形参与实参之间的数值传递方式有哪些?如何传递?(5分)
答:(1)按值传递方式,将实参的值复制到对应的形参中,在函数内部的操作针对形参进行,操作的结果不会影响到实参,即函数返回值,实参的值不会改变。
(2)按引用传递方式,按引用传递方式就是引用将实参的内存地址传递到形参中,这时在函数内部的所有的操作都会影响到实参的值,返回后实参的值会发生变化,引用传递方式就是传递时在原基础上加&号即可。
(3)默认函数(可选参数)。可选参数指定某个参数为可选参数,将可选参数放在参数引表末尾,并且指定其默认值为空。
7.定义:$str=”a1b2c3”,请写出下面两种匹配的结果以及解释一下两者的区别。(5分)preg_match(‘/[w]*[d]+/i’),$str,$ary);echo $ary[0];preg_match(‘/[w]*?[d]+/i’,$str,$ary);echo $ary[0];参考答案:第一个输出为a1b2c3,第二个输出为a1。
区别主要是[w]*,后面有没有跟问号,PHP的正则匹配模式默认为贪婪模式,即第一个模式,表示*取尽量多的匹配字符,第二个加了个限定符?,为非贪婪(或懒惰模式),表示*取尽量少的匹配字符。(能写出贪婪和懒惰的区别,正则表达式已经没大问题了。)
8.session和cookies 有什么区别?如果浏览器禁用了cookies,session还可以使用吗?为什么?(5分)
参考答案:cookies存储在客户端,session存储在服务端。浏览器禁用了cookies,session也不可以使用,因为sesession是需要客户端发送一个sessionid到服务端,禁用了cookies,客户端就不能保存此sessionid,session也失效了。(session是常用的,考察使用的熟悉程度)
程序开发 卷1
9.PHP二进制数据流是处理是用什么函数的?(4分)参考答案:pack和unpack。(与服务端通信用到的解析方法)
10.求两个日期的差数,例如2009-3-1 ~ 2009-4-4 的日期差数?(4分)答:(strtotime(‘2009-4-4’)-strtotime(‘2009-3-1’))/3600*24
三、Linux操作题(20分,每题5分)1.请尽量写出你熟悉的linux文件操作命令及其作用。
参考答案:自由发挥.基本的文件操作命令rm(移除),mv(移动),cp(复制),chmod(改权限),pwd(查看当前路径),mkdir(创建目录)ls(列举当前目录)2.3.4.简述linux下,rsync同步命令怎么实现无需输入密码数据同步?(5分)
参考答案:在机器1上生成公钥私钥对,将生成的公钥复制至机器2,加入到~/.ssh/id_dsa.pub。即可实现无密码同步。(同步没问题了)
四、综合问答题(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怎么添加定时任务? 参考答案:crontab –e
2.11.请使用伪语言结合数据结构冒泡排序法对以下一组数据进行排序 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的用法。
程序开发 卷1
参考答案:Union all将两次或多次查询的结果合并。
Left join从左表那里返回所有的行,即使在右表中没有匹配的行。(这两个能记住,mysql也比较熟了)
4.Mysql 优化有什么方法?
参考答案:简单点的就是程序员写高质量的sql语句,数据库设计优秀,按需要建立索引(重点)。深入点的,优化mysql配置。
5.一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数,用SQL语句及视图、存储过程分别实现。
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.请举例说明在你的开发过程中用什么方法来加快页面的加载速度
参考答案:自由发挥题,言之有理即可(如:要用到服务器资源时才打开,及时关闭服务器资源,数据库添加索引,页面可生成静态,图片等大文件单独服务器。使用代码优化工具)。
7.对于大流量的网站,您采用什么样的方法来解决访问量问题? 参考答案:确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表,控制大文件的下载,使用不同主机分流主要流量确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表,程序功能规则,禁止外部的盗链,控制大文件的下载,使用不同主机分流主要流量。
第二篇:PHP程序员笔试题(附答案)
普通PHP程序员笔试题
标签:程序员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;
其结果是?
3.PHP代码如下:
$str=“cd”;
$$str=“landog”;
$$str.=“ok”;
echo $cd;
其结果是?
4.用PHP写一段代码,实现不使用第3个变量,交换$a、$b的值,$a、$b的初始值自己定。
5.根据题目要求,用PHP写出代码。
表名User
IDNameTelContentDate
1张三 ***大专毕业2006-10-11
3张三 ***本科毕业2006-10-15
5张四 020-5566556中专毕业2006-10-15
4王五 ***大专毕业2006-12-25
2„„„„
6„„„„
假设数据库连接如下:
$mysql_db=mysql_connect(“local”,“root”,“pass”);
@mysql_select_db(“DB”,$mysql_db);
(1)查询出所有Name等于“张三”的记录,并输出。
(2)按ID升序查询,只返回排序后的前3条记录,并输出。
6.javascript能否定义二维数组,如果不能你如何解决?
7.假设a.html和b.html在同一个文件夹下面,用javascript实现当打开a.html五秒钟后,自动跳转到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,地址=广州升瑞,按提交按钮后输出结果是?
9.你是否使用过版本控制工具,如果有,请简要说明。
10.利用CSS样式表定义已访问的超链接字体大小为14pt,颜色为red。
11.移动任意一位数或符号,使等式成立, 102 = 101-1。注:是移动不是交换,等号不能分开。
12.规律题,3、1、4、1、5、9、2、(), 请按照规律在括号内写出下一表达式。
13.规律题,5、8、-
3、5、-
2、3、-
1、(),请按照规律在括号内写出下一表达式。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
答案:
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不支持二维数组定义,可以用arr[0] = new array()来解决
7.javascript代码如下:
function go2b(){
window.location = “b.html”;
window.close();
}
setTimeout(“go2b()”,5000);//5秒钟后自动执行go2b()
8.(1)如下所示:
略。因为懒得插入图片,如果想看结果可以把代码保存为html文件,再用浏览器打开查看。
(2)输出结果应为:
姓名:
电话:
邮箱:
地址:
因为表单是用post方式提交,但在a.php中却用get方式来读取,所以不会读到任何值。
9.略
10.a:visited { font-size: 14pt;color: red;}
11.102 = 101-1
12.答案为6,因为∏=3.1415926
13.答案为2,规律为n=(n-2)– |(n-1)| ,n>=3
第三篇:PHP程序员笔试题
姓名:________________
开始时间:________________(完成时间1个小时)
1、HTTP 协议里 GET和POST请求的区别
2、session与cookie的区别
3、数据库中的事务是什么?
4、优化MYSQL数据库的方法,举例说明。(多写多得,可写在反面)
5、PHP语句include和require的区别是什么
6、JS表单弹出对话框函数是什么?获得输入焦点函数是什么?
7、下面的PHP5程序的输出值是什么?
$num = 10;
function multiply(){ $num = $num * 10;
}
multiply();
echo $num;?>
8、PHP检测一个变量是否有设置的函数是什么?
9、谈谈对mvc的认识?
10、一个整数数组包含10个元素,未排好序
9,16,25,32,2,1,29,81,36,21 写一个PHP程序,1)对数组进行排序
2)用二分法查找并输出 20 这个数在数组中的序(序号从1开始,查找不到返回0),写在反面
11、请写一个PHP函数验证电子邮件的格式是否正确
12、写出Linux下 创建目录、删除目录、删除文件、查看指定目录内容、移动文件的命令,并举例说明
13、CSS中margin和padding的区别
14、简述ajax的原理
15、假设给你5台服务器,请大致的描述一下,如何使用你所熟悉的软件,搭建一个日PV 100万左右的中型网站,包括数据库、WEB服务
第四篇:普通PHP程序员笔试题
普通PHP程序员笔试题
整理于2012-7-3,自己整理的,已经测试过,仅供参考
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;
其结果是?
hello
3.PHP代码如下:
$str=“cd”;
$$str=“landog”;
$$str.=“ok”;
echo $cd;
其结果是?
landogok
4.用PHP写一段代码,实现不使用第3个变量,交换$a、$b的值,$a、$b的初始值自己定$a='2.0';
$b='3.0';list($b,$a)=array($a,$b);
echo $a.'
'.$b;
5.根据题目要求,用PHP写出代码。
表名User
IDNameTelContentDate
1张三 ***大专毕业2006-10-11
3张三 ***本科毕业2006-10-15
5张四 020-5566556中专毕业2006-10-15
4王五 ***大专毕业2006-12-25
2„„„„
6„„„„
假设数据库连接如下:
$mysql_db=mysql_connect(“local”,“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能否定义二维数组,如果不能你如何解决?
看了很多资料,发现很多都说JS不支持二维数组,不过在JS中对二维数组的定义却有很多方法,以下是其中四种:
var arr=[[1,2,3],[4,5,6]];
//alert(arr[0][0]);
var arr1=new Array([1,2,3],[4,5,6]);
//alert(arr[0][1]);
var arr2=new Array(new Array(1,2,3),new Array(4,5,6));
//alert(arr[0][2]);
var arr3=new Array();
arr3[0]=new Array(1,2,3);
arr3[1]=new Array(4,5,6);
//alert(arr3[1][0]);
7.假设a.html和b.html在同一个文件夹下面,用javascript实现当打开a.html五秒钟后,自动跳转到b.html。
前提是a.html已打开
function go2b(){
window.location = “b.html”;
}
setTimeout(“go2b()”,5000);//5秒钟后自动执行go2b()
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,地址=广州升瑞,按提交按钮后输出结果是?
输出结果为:
用户名:
电话:
邮箱:
地址:
9.你是否使用过版本控制工具,如果有,请简要说明。
10.利用CSS样式表定义已访问的超链接字体大小为14pt,颜色为red。
a:visited{font-size:14pt;color:red;}
11.移动任意一位数或符号,使等式成立, 102 = 101-1。注:是移动不是交换,等号不能分开。
将2上移变成10的平方等于101-1,10=101-1
12.规律题,3、1、4、1、5、9、2、(6), 请按照规律在括号内写出下一表达式。这一串数字是π=3.1415926中的数字,所以为6
13.规律题,5、8、-
3、5、-
2、3、-
1、(2),请按照规律在括号内写出下一表达式。n=|n-2|-|n-1| 2
第五篇:php试题及答案
php试题及答案
问题
1. 考虑如下脚本。标记处应该添加什么代码才能让脚本输出字符串 php? $alpha = 'abcdefghijklmnopqrstuvwxyz';$letters = array(15, 7, 15);foreach($letters as $val){/* 这里应该加入什么 */ } ?> 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,把 字 符 串 转 化 成 example.com?
A.substr($email, strpos($email, “@”));
下 哪 项 能 以 B.strstr($email, “@”);C.strchr($email, “@”);
D.substr($email, strpos($email, “@”)+1);E.strrpos($email, “@”);
4. 给定一个用逗号分隔一组值的字符串,以下哪个函数能在仅调用一次的情况下就把每
个独立的值放入一个新创建的数组? A.strstr()B.不可能只调用一次就完成 C.extract()D.explode()E.strtok()5. 要比较两个字符串,以下那种方法最万能? A.用 strpos 函数 B.用==操作符 C.用 strcasecmp()D.用 strcmp()6. 以下哪个 PCRE 正则表达式能匹配字符串 php|architect? A..* B.…|……… C.d{3}|d{8} D.[az]{3}|[az]{9} E.[a-z][a-z][a-z]|w{9} 7. 以下哪些函数能用来验证字符串的完整性?(三选)A.md5()B.sha1()C.str_rot13()D.crypt()E.crc32()8. 哪个 PHP 函数与以下脚本在 UNIX 系统下执行的效果近似? 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)把一个字符串分隔开并放入数组,以下哪些函数能做到?(双 选)
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.方框中的正则表达式能与以下哪些选项匹配?(双选)/.**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.如果用+操作符把一个字符串和一个整型数字相加,结果将怎样? A.解释器输出一个类型错误
B.字符串将被转换成数字,再与整型数字相加 C.字符串将被丢弃,只保留整型数字 D.字符串和整型数字将连接成一个新字符串 E.整形数字将被丢弃,而保留字符串
15.考虑如下脚本。假设 http://www.xiexiebang.compile-time)包含一
个 PHP 脚本使用______。A.include_once, include B.require, include C.require_once, include D.include, require E.以上皆可
16.什么情况下声明函数时不能给参数赋默认值? A.当参数是布尔值时 B.当函数是类中的成员时 C.当参数是通过引用传递时 D.当函数只有一个参数时 E.永远不会
17.______操作符在两个操作数中有一个(不是全部)为 True 时返回 True。答案:____________ 18.全等运算符===如何比较两个值?
A.把它们转换成相同的数据类型再比较转换后的值 B.只在两者的数据类型和值都相同时才返回 True 8 C.如果两个值是字符串,则进行词汇比较 D.基于 strcmp 函数进行比较 E.把两个值都转换成字符串再比较
19.以下哪个选项是把整型变量$a 的值乘以 4?(双选)A.$a *= pow(2, 2);B.$a >>= 2;C.$a <<= 2;D.$a += $a + $a;E.一个都不对
20.一段脚本如何才算彻底终止? A.当调用 exit()时 B.当执行到文件结尾时 C.当 PHP 崩溃时
D.当 Apache 由于系统故障而终止时
答案
1. 唯一有意义的答案是 B。PHP 是一种基于 Zend 引擎的脚本语言,它通常被嵌入在 HTML 代码中。它主要被用来开发 HTML 文档,但是也可以用它来开发其他类型的文档,比 如 XML。
2. PHP 编程中,人们不太使用<% %>和两个标签,但它们确实是合法的 PHP 界定符。
标签是非法的,因此正确的答案是 D。记住,根据 php.ini 文件中的配置不同,这
当中的某些标签无法在特定的情况下使用。
3. PHP 变量以一个美元符号为开头,后面跟上任意数量的数字、字母和下划线。${“MyVar”}
是一个合法的变量名,它使用的是较松散的命名约定。&$something 是对$something 的
引用。然而,变量名不能以数字为开头,$10_somethings 是非法的,因此答案是 D。
4. 注意,$myarray 的键值并没有打上引号。所以,正在访问的键不是 myvalue 字符串,而是常量 myvalue 的值。最终访问的是$myarray[10],值是 Dog,答案是 A。5. 尽管 print()和 echo()在绝大多数情况下可以互换使用,但它们之间还是有一处不同。
print()是函数,有返回值;echo()实际上是一个语言结构,没有返回值,并且不能在表
达式中使用。因此,答案是 A。
6. %运算符表示取模,它返回两个操作数相除的余数。<<是左移运算符,相当于乘以 2 的 N 次方。最后的答案乘以了一个浮点数,改变了它的数据类型。但是,由于小数点
后是零,因此输出的结果不包含小数部分。答案是 256(D)。
7. 根据条件式的逻辑,要想得到 Hello, World!字符串,必须要在第一个 if 结构中满足 else 的条件。因此$a 必须为 False,然后$b 也必须为 False。最内层的条件语句的实现要求
先前的两个变量($a 和$b)是 False,而$c 必须是 True(答案是 D)。8. 正确答案是 C。从 PHP4.2.0 开始,除非已经给定了一个伪随机整数列,否则不再需要
用 srand()函数初始化随机数生成器。此外,即使随机数生成器没有被事先播种,脚本
仍然会生成 49 个伪随机字符。尽管$array 变量是字符串,但可以用访问数组的方式进
行访问——使用数字索引访问某个位置上的字符。最后,for 循环将从 1 开始执行到 50,也就是执行了 49 次。
9. 用一系列的 if…else 语句来检查一个条件的代码块,最适合用 switch 语句来替代。switch($a){ case 'a': somefunction();break;case 'b': 10 anotherfunction();break;case 'c': dosomething();break;default: donothing();} ?> 因为 if 语句中有一个捕捉所有其他条件的 else,对应的,switch 代码块需要一个 default。正确答案是 E。
10.通常情况下,foreach 语句是遍历数组的首选。但是,由于 foreach 语句是在数组的副
本上进行操作,而我们需要给数组中每个元素重新赋值,所以在这里 foreach 就不适用
了。尽管也可以用 while 循环和 do…while 循环,但由于数组是顺序索引的,最合适的
语句还是 for 语句。因此答案是 A。
$myarray = array(“My String”, “Another String”, “Hi, Mom!”);for($i = 0;$i < count($myarray);$i++){ $myarray[$i].= “($i)”;} ?> 11.由于题目只允许填写一行代码,唯一合适的是 for 循环,因此答案只能是 C 或者 D。
要选出能生成正确结果的 for 循环,我们必须先复习一下 for 循环的构成要素。PHP 中,for 循环是这样声明的:
for(<初始化>;<继续执行,直到>;<重复执行>)<初始化>在循环开始时执行一次,然后 for 循环开始执行大括号内的代码,直到<继续 执行,直到>的值为 False。每完成一次循环,执行一次<重复执行>。因此,正确的代 码块应该是:
for($idx = 1;$idx < STOP_AT;$idx *= 2)答案是 C。
12.5 个选项中,只有两个是合法的 PHP 函数声明(A 和 D)。在这两个选项中,只有一
个设置了参数的默认值——答案是 A。
13.本题考察 PHP 中变量作用域的相关知识。你必须明确 global 关键字是如何将变量引入
本地域的,以及$_GET、$_POST、$_COOKIE、$_REQUEST 等超级全局变量的作用 域。本题中,最终的数学表达式是 5+25-25-10,等于-5,答案是 B。14.函数能被以一个包含着函数名的变量后面加上括号(以及必要的参数)的形式动态
调用。对于Group A来说,合适的索引组合是0,4,9,9,9,9,产生字符串myfunction。
另一方面,参数将使用${}结构的可变变量。对Group B来说,合适的索引应该是7 和8,等于${‘a’}$和{‘b’}——即$a和$b。因此答案是D。
15.在较新版本的 PHP 中,require(或 requier_once())和 include()(或 include_once())只有
一个区别——如果包含的文件不存在,前者将产生一个致命错误,同时终止脚本的执
行;而后者只会产生一个警告。因此答案 E 正确。
16.当参数被声明为通过引用传递时,你不能给它赋默认值,此时解释器期望获得一个能
在函数内部进行修改的变量。答案是 C。17.正确答案是逻辑异或(xor)运算符。18.全等运算符比较两个操作数的数据类型和值,两者中有一个不同,都会返回 False。因 此答案是 B。
19.答案是 A 和 C。A 选项中,pow 函数计算 2 的平方,答案是 4。C 选项中,左移运算
符将$a 的值左移两位,相当于乘以 4。
20.答案是 A。一段脚本并不会在执行到文件末尾时终止,所以当前文件才能被其他脚本
包含。至于 PHP 和 Apache 崩溃,这两个说法就太恶搞了。