PHP综合测试
(答题时间:90分钟 总分100分)
选择题每道1.5分 大题每道5分 一、选择题
1、如何让一个对象实例调用自身的该对象的方法函数“mymethod”? A.$self=>mymethod(); B.$this->mymethod();
C.$current->mymethod(); D.$this::mymethod();
2、以下是一个类的声明,其中有两个成员属性,对成员属性正确的赋值方式是()
class Demo { private $one; static $two;
function setOne($value) { $this->one=$value; } } $demo=new Demo();
A.$demo->one=\B.Demo::$two=\
C.Demo::setOne(\D.$demo->two=\
3、.针对PHP5中特有的魔法方法(Magic Methods),下列四句中哪句是错误的()
A.__get和__set方法用于设置并不存在的类实例的属性成员 B.__call方法用于调用并不存在的类的方法成员
C.__sleep和__wakeup方法用于在序列化类实例时处理其中的外部资源和冗余数据
D.通过__get方法,我们可以实现类的只读属性,而__set方法可以实现只写属性
4.以下说法错误的是()
A. final关键字标识的类不能被继承
B. final关键字标识既可以标识成员方法,也可以标识成员属性 C. 在静态方法中只能访问静态成员
D. 将类中的成员属性定义为常量使用const
5.一个类继承父类的同时实现多个接口的正确写法() A.class 类名extends 父类名,接口1,接口2,??{ }
B.class 类名 implements接口1,接口2,?? extends 父类名{ } C. class 类名extends 父类名 implements接口,1接口2,??{ }
D. class 类名 implements父类名 implements接口,1接口
6.下面哪一项不是PHP中面向对象的机制() A.类 B.属性、方法 C.单一继承 D.多重继承
7.如果成员没有声明限定字符,属性的默认值是:()
A.private B.protected C.public D.final
8.PHP中调用类文件中的this表示()
A.用本类生成的对象变量 B.本页面 C.本方法 D.本变量
9、在PHP5的类的定义中,如果方法M1能够调用方法M2,但M2不能调用M1,那么M1和M2应该符合?() A.M2是静态方法而M1不是
*在静态方法中不可以使用非静态的内容。就是不让使用$this
在类的方法中可以使用其他静态属性和静态方法,不过要使用self关键字 B.M1是静态方法而M2不是 C.M1和M2都是静态方法 D.M1和M2都不是静态方法
10.在PHP5的类的定义中,无法使用3P修饰的内容是() A.属性 B.静态方法 C.常量 D.方法
11.以下四条接口与抽象类的对比分析,哪条是错误的() A.接口和抽象类都可以只声明方法而不实现它。 B.抽象类可以定义类常量,而接口不能。 C.抽象类可以实现具体的方法,而接口不能。 D.抽象类可以声明属性,而接口不能。
12.定义抽象类时需要加的修饰关键字()
A.public B.interface C. implements D.abstract
13.一个类继承父类的同时实现多个接口的正确写法() A.class 类名extends 父类名,接口1,接口2,??{ }
B.class 类名 implements接口1,接口2,?? extends 父类名{ } C. class 类名extends 父类名 implements接口,1接口2,??{ } D. class 类名 implements父类名 implements接口,1接口2,??{ }
14.自动加载类函数()
A.include() B. require() C.__autoload() D.__call()
15.如果父类中方法加上private修饰关键字,子类在继承中重载此方法不可以使用的修饰关键字()
A.var B. public C.protected D.private
16、除了使用function __construct()定义构造方法外,还可以使用() A.function __destruct() B. function 类名() C.function __tostring() D.function __call()
17、获得实例化对象所属类名字的函数()
A. get_class() B. get_object_vars() C. get_class_methods()
18.以下说法错误的是()
A. 在外部访问静态成员属性时使用类名::静态成员属性名
B. 在外部访问静态成员属性时使用 $实例化对象->静态成员属性名 C. 在外部访问静态方法时使用$实例化对象 ->静态方法名 D. 在外部访问静态方法时使用类名::静态方法名
19.以下哪个不属于面向对象编程的三大特性( ) A.接口 B. 封装 C.继承 D.多态
20.下列代码执行后,$array数组所包含的值是( )
$array=array('1','1');
foreach($array as $k=>$v){ $v=2; }
var_dump($array); ?>
A array(‘2’,’2’) B array(‘1’,’1’) C array(2,2) D araay(Null,Null)
21.smatry配置文件中有一个全局变量pageTitle = \,如何读取该变量?( )
A.{$config_value} B.{smarty.config[config_value]} C.{smarty.config} D.{# pageTitle#}
22.以下代码执行结果为( )
$a=”hello”;
function print_A(){
$a=”php mysql”; global $a; echo $a; }
echo $a; print_A(); ?>
A hello B php mysql C hellohello D hello php mysql
23.smarty中用于指定存放编译过的模板文件的属性( )
A. $template_dir B.$compile_dir C.$config_dir D.$cache_dir
24.smarty访问通过get方式提交的变量username的正确书写格式( ) A.{smarty.get.username}
B.{$smarty.GET[‘username’]} C.{$smarty.get[‘username’]} D.{$smarty.get.username}
25.smarty中日期格式化的变量调解函数( ) A.date_format B.date C. time D.now
26.在section和foreach两个循环中都有可供调用的一些变量名,用来访问该循环中的一些特殊值,而且在循环中都必须通过Smarty保留 变量{$smarty}进行访问,下面哪个特定变量只能在section区块中使用,而不能在foreach区块中使用。()
A first B last C total D loop
27.PHP中调用类文件中的this表示()
A用本类生成的对象变量 B本页面 C本方法 D本变量
28.魔术方法__get的参数表示()
A.方法名 B属性名 C属性值 D类名
29.魔术方法__set的参数表示()
B.属性名;方法名 B类名;属性名 C属性名;属性值 D类名;方法名
30.下列有关PDO关联索引是大写还是小写的参数说法正确的是( )。 A.PDO::LOWER—强制列名为小写 B.PDO::ASSOC—关联数组形式
C.PDO::FETCH_NUM—数字索引数字形式
D.PDO::FETCH_OBJ—按照对象的方式,与mysql_affect_object()相同
31.如果在PHP中使用Oracle数据库作为数据库服务器,应该在PDO中加载下面哪个驱动程序( )。
A.PDO_DBLIB B.PDO_MYSQL C.PDO_OCI D.PDO_ODBC
32.在创建PDO对象时,需要在构造方法的第一个参数中使用数据源名DSN,用来定义一个确定的数据库和必须用到的驱动程序。下面是连接不同数据库的DSN格式,哪一个不是正确的DSN( )。 A.mysql:host=localhost;dbname=testdb B.oci:dbname=//localhost:1521/mydb
C.ibm:database={IBM DB2 ODBC DRIVER};driver=testdb D.mssql:host=localhost;dbname=testdb
33.当PDO对象创建成功以后,与数据库的连接已经建立,就可以使用PDO对象了,下面哪个不是PDO对象中的成员方法( )。
A.errorInfo() B.bindParam() C.exec() D.prepare()
34.在创建PDO对象时,有一些与数据库连接有关的选项,用来传递附加的调优参数到PDO或底层驱动程序。下面哪个选项用于确定连接为持久连接( )。 A.PDO::ATTR_AUTOCOMMIT B.PDO::ATTR_PERSISTENT C.PDO::ATTR_CONNECTION_STATUS D.PDO::ATTR_PREFETCH
35.PDO提供了多种不同的错误处理模式,不仅可以满足不同风格的编程,也可以调整扩展处理错误的方式。下面哪个不是PDO提供的错误处理模式( )。 A.ERRMODE_SILENT B.ERRMODE_WARNING C.PDO::ERRMODE_ERROR D.ERRMODE_EXCEPTION
36.PDO通过执行SQL查询与数据库进行交互,可以分为多种不同的策略,使用哪一种方法取决于你要做什么操作。如果向数据库发送DML语句,下面哪种方式最合适( )。
A.使用PDO对象中的exec()方法 B.使用PDO对象中的query()方法
C.使用PDO对象中的prepare()和PDOStatement对象中的execute()两个方法结合
D.以上方式都可以
37.在PHP中哪个变量数组总是包含所有客户端发出的Cookies数据( )。 A.$_COOKIES B.$_COOKIE C.$_GETCOOKIE D.$_GETCOOKIES
38.Cookie的属性中,用来确定Cookie有效日期的属性是( )。 A.NAME B.EXPIRES C.PATH D.DOMAIN
39.对Smarty模板描述错误的是( )。
A.Smarty模板是Zend完全官方化的模板引擎 B.Smarty模板具有强大的表现逻辑功能 C.Smarty模板的特点是只适用于PHP程序员
D.Smarty模板具有模板编译、缓存等优良的特性 40.在安装Smarty模板时,用来存储Smarty模板的目录和配置文件目录的两个属性是( )。
A.templates configs_dir B.templates configs
C.templates_dir configs D.template_dir configs_dir
二、编程题(共8道) 1、什么是单态设计模式。
单态模式是使一个类只能有一个实例化对象存在。
2, 要求使用jQuery事件写在页面元素加载完成之后,动态绑定click事件到btnOK元素。 $(function(){
$(“btnOK”).click() })
3, 简单说说MVC模式
视图(View) 模型(Model) 控制(Controller)
4, 用户每访问成功付款一笔订单(从进入到离开),会增加一条记录,记录用户的ID(user_id),以及购买的产品数量。比如:208,2 //208这个用户购买2个产品
请写一个SQL语句挑出用户(id=100)最近】购买的第10到第20条订单(共10个)
5, 如何重载父类的方法 public function demo(){ parent::demo(); }
6, 设计一个数据库test,表名为test_content 字段为id,title和content 7, (关联题目1)将接收到的内容title和content采用pdo预处理的方式写入进入数据库.
8, 做一个页面list.php页面,采用pdo的方式遍历出结果。