[Zend权威认证试题讲解]第十二章 -调试与性能管理
作为一个开发者,无论你经验多么丰富,或者无论你多么努力,你的程序中总会有bug。这是生命中一个必然的部分,如同死亡与缴税(尽管并没有后面两个那么严重)。要想解决bug,首先要能找到bug。事实上,许多开发者花费了无数小时茫然得盯着代码,只是因为他们没有把程序的容错能力摆在首位。忽略了这个部分,那么期望一个没有bug的程序就是——不可能的。
本章测试题将考察你对调试和性能管理相关知识的了解,以及如何用PHP做好这两件事。?/fA F iI,u r`&b^
问题~I1_`Ub/nFywm
B*lS~bDt
1.以下脚本如何用三元操作替代? (EG.^+pBi
[code] F&Lh\jE"r
<?php2TID+si5nt
if ($a < 10) {b2~Vs;mcB+]2cF j
if ($b > 11) {*xa6fpv/M{\]
if ($c == 10 && $d != $c) {
$x = 0;
} else {
$x = 1;'n+Nt+]},n
}
}
}e m(smE P
?>
W;W d,n%_G6H
[/code]
A.$x = ($a A. < 10 || $b > 11 || $c == 1 && $d != $c) ? 0 : 1;Y7MR$cb P.GZll6RV
B.$x = ($a < 10 || $b > 11 || ($c == 1 && $d != $c)) ? 0 : 1;
C.$x = (($a < 10 && $b > 11) || ($c == 1 && $d != $c)) ? 0 : 1;
D.$x = ($a < 10 && $b > 11 && $c == 1 && $d != $c) ? 1 : 0;9[ Ck.?u;u*p~V
E.以上都不对N(r}T N4t
2.有一个脚本由于要从远程获取数据,因而运行速度很慢,以下那种方法能对其进行优化?(双选)$S9{:]]w?|$X8k
A.安装操作码缓存(opcode cache)eW&a:?V |q4M3P
B.优化或者升级你的网络连接
C.添置更多的硬件r;YEW O(qU#f-v
D.增加服务器的可用RAM
E.使用连接缓存
%^r4f;u9\
3.架设生产环境下的服务器时,需要做哪些步骤?(双选)
A.关闭错误报告!S/K9G.x Nc!Fi
B.打开错误日志
C.关闭错误日志
D.关闭错误显示
E.使用@抑错符1c;I,^\O_+c
'h$P&jn^Q gM!KH'`2?
8T9Ya/m"S'|{}0q
4.______操作符能对操作数的数据类型进行严格的比较?
`,Zw(Jo
答案:____________
0W,q5I+lBqS+u
5.操作码缓存(opcode cache)能做什么?!?r2FGoUFw`
x%`f)aTONQ
A.把脚本编译成二进制对象,使它运行得更快S/_p7P@}
B.代替Zend引擎加快解释器的运行
C.缓存脚本输出以提高执行效率
D.缓存解析器产生的中间码,以提高运行效率$?*^!U,C'A R
E.在内存中缓存脚本,减少从硬盘中读取的次数
uz B"h(Jzb2H+q
6.以下哪些情况容易造成系统资源枯竭?(双选)`8e'xP/]
A.RAM太小
B.使用了低带宽的连接
C.虚拟内存超过2GBb+E6p&J-`;n
D.允许同时运行太多的服务器进程
E.以上都不对~8I3XZr_
7.以下脚本缺了些什么?(双选) ^Ju)ZAb7XB
[code]
<?php4e'd(|}W}
$rs = database_query ("select * from mytable where id = " .
$my_id);
while ($a = database_get_data ($rs)) {|H!_G} q
var_dump ($a);K z5c5h"S:o.cS;h2{
} ZT Qc x'|{w8J!Mx
?>
[/code]
A.参数出口(Parameter escapement)6?*ABA,`;[
B.输出格式化(MA,[1MLu4\{
C.错误检查
D.一个SQL查询
E.以上都不对
8.以下那种错误类型无法被自定义的错误处理器捕捉到?(双选)
[Ep GA
A.E_WARNING3w*LS6Wz_k:mX
B.E_ERROR6d:L#TV(G } G$_
C.E_USER_ERROR
D.E_PARSE6M Md2B+G+c
E.E_NOTICE)[|&W@M1Rz1[
9.当需要比较一个常量和一个变量时,如何才能保证不会错弄成赋值?
A.把变量转换成int
B.使用全等比较符(===)
C.确保常量是第一个操作数4~FkLx2W;I-F
D.使用三元运算符-x4Io-Jxb
E.用括号把操作包起来oD$zB,{q
:U/nJ][ q
10.要通过邮件给系统管理员发送错误信息,以下那种方法最简便?