[Zend权威认证试题讲解]第二章-用PHP4进行面向对象编程
尽管PHP4的OOP性能不强,但它还是能够被用来构建可行的面向对象的代码结构——只要你知道对象模型的缺陷,并且小心的处理它们。PHP5在对象的处理方面做了很多改变,你或许会因此更倾向于完全忽略PHP4。但事实上,许多用OOP的程序员从很早以前就开始用老版本的PHP编写软件了。所以,大量的OOP代码早已存在,甚至在人们跳到PHP5上进行开发之前。
本章不仅考察你对面向对象知识的总体掌握,还包括对PHP4特有的OOP实现机制的认识。
oA'_(Z s U{z+y
问题
4[&Dm,H9dwe6BK
1.对象的蓝图是什么?
答案:____________
*Id)@ n&r2Z:v/e
2.以下代码执行后,数组$a->my_value中储存的值是什么?(三选)[code]
<?php
class my_class
{
var $my_value = array();
function my_class ($value)1OQg T7Mi-mKE
{x!t$T6`X
$this->my_value[] = $value;8a&b4tne|&Fp"T
}8{$\(p&Qxv(Z6]
function set_value ($value)
{
$this->$my_value = $value;
}
}
$a = new my_class ('a'); A o(LX,i0I o]l
$a->my_value[] = 'b';
$a->set_value ('c');
$a->my_class('d');
?>[/code]A.c
B.b
C.aTQO4@URpa
D.d2]jV?Y#s"Q
E.e_D s/N$?/c:Vl
N9s;YZn
3.如何让类中的某些方法无法在类的外部被访问?N P2{3[FD|r _
7ycjgYx OT
A.把类声明为private
B.把方法声明为private
C.无法实现
D.编写合适的重载方法(overloading method)&@Ia0w \1|t8t P
+V?FT2kuNs$b
4.哪种OOP设计模式能让类在整个脚本里只实例化一次?
,|hG%^-@-t$HC
A.MVC模式.t[-dXR2}3Le P*J
B.抽象工厂模式(Abstract factory)
C.单件模式(Singleton)
D.代理模式(Proxy)"Q\P'pt v7C\`e3f
E.状态模式(State)
{!Nk@l.DV!p
'SC/K2RzwRI9i
5.借助继承,我们可以创建其他类的派生类。那么在PHP中,子类最多可以继承几个父类? S,fE c)gw9|~LVu;x]
8~-@s}8Qg
A.1个
B.2个]%?Z!a1x(h {&lN U
C.取决于系统资源
D.3个
E.想要几个有几个
^ g9bJ}mE
6.以下脚本近似的表示了一种在PHP4中无法实现的特性,请问这个特性叫什么?[code]
<?php
class my_class8E4~6j&S4coFz
{f*eeLc#U*[I%^
function my_funct ($my_param)+oB;dew0Y.HW&k9R j
{
user_error ("Please define me", E_ERROR);
}
function b()