PHP高级测试

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PHP综合测试
(答题时间:90分钟总分100分)选择题每道1.5分大题每道5分
1、下面哪一项不是PHP中面向对象的机制()
A.类
B.属性、方法
C.单一继承
D.多重继承
2、如何让一个对象实例调用自身的该对象的方法函数“mymethod”?()
A.$self=>mymethod();
B.$this->mymethod();
C.$current->mymethod();
D.$this::mymethod();
3、如果成员没有声明限定字符,属性的默认值是:()
A.private
B.protected
C.public
D.final
4、PHP中调用类文件中的this表示()
A.用本类生成的对象变量
B.本页面
C.本方法
D.本变量
5、以下是一个类的声明,其中有两个成员属性,对成员属性正确的赋值方式是()
class Demo {
private $one;
static $two;
function setOne($value) {
$this->one=$value;
}
}
$demo=new Demo();
A.$demo->one="abc";
B.Demo::$two="abc";
C.Demo::setOne("abc");
D.$demo->two="abc";
6、在PHP5的类的定义中,无法使用3P修饰的内容是()
A.属性
B.静态方法
C.常量
D.方法
7、在PHP5的类的定义中,如果方法M1能够调用方法M2,但M2不能调用
M1,那么M1和M2应该符合?()
A.M2是静态方法而M1不是
B.M1是静态方法而M2不是
C.M1和M2都是静态方法
D.M1和M2都不是静态方法
8、以下四条接口与抽象类的对比分析,哪条是错误的()
A.接口和抽象类都可以只声明方法而不实现它。

B.抽象类可以定义类常量,而接口不能。

C.抽象类可以实现具体的方法,而接口不能。

D.抽象类可以声明属性,而接口不能。

9、.针对PHP5中特有的魔法方法(Magic Methods),下列四句中哪句是错误的()
A.__get和__set方法用于设置并不存在的类实例的属性成员
B.__call方法用于调用并不存在的类的方法成员
C.__sleep和__wakeup方法用于在序列化类实例时处理其中的外部资源和冗余数据
D.通过__get方法,我们可以实现类的只读属性,而__set方法可以实现只写属性
10、下列描述正确的是()
A、JavaScript是一种编译型语言
B、JavaScript是一种基于对象和事件驱动的编程语言
C、JavaScript中变量声明采用强定义类型
D、JavaScript采用静态联编
11、制作级联菜单功能时调用的是下拉列表框的()事件。

A onClick
B onChange
C onmouseout
D onmousemove
12、对JavaScript功能说法正确的是:()
A、JavaScript可以编辑客户端文件
B、JavaScript可以获取服务器中的时间
C、JavaScript代码由浏览器解释执行
D、JavaScript可以接收用户提交的表单
13、在下面的选项中,在HTML文档中使用JavaScript并调用test()方法,不正确的是:()
A、<a href=”javascript:test()”>单击</a>
B、<div onclick=”test()”>单击</div>
C、<script type=”text/javascript”> test() </script>
D、<script src=”test.js”>test()</script>
14、在HTML文档中嵌入JavaScript代码,不正确的是:()
A、<script language=”javascript”> </script>
B、<script> </script>
C、<script language=”ECMAscript”> </script>
D、<script language=”js”> </script>
15、对JavaScript基本语法描述不正确的一项是:()
A、JavaScript严格区分大小写
B、JavaScript程序代码的格式,每条功能执行语句的最后必须用分号(;)结束
C、JavaScript脚本程序可以独立保存为一个外部文件,但其中不能包含<script></script>标签。

D、JavaScript中使用单引号和双引号声明的字符串没有任何区别
16、在js中判断是否为数字的函数是()
A.isNaN
B.number
C.numberic
D.int
17、js中取得指定字符在字符串中的位置的函数是()
A、indexof
B、indexofvalue
C、indexOf
D、addindex
18、js中获取字符串第一个字符可以使用()
A、 charAt(0)
B、 indexfirst()
C、 onechar
D、 firstvalue
19、在js中获取html的下拉列菜单item第一个option的值,用()
A、 item.options[0].value
B、 item.selectedIndex.text
C、 item.first.text
D、 this.value
20、对于代码:<input type="button" value="点一下" onclick="alert('你好')">分析正确的是()
a)Onclick表示鼠标移上去的事件
b)这个代码运行时将报错
c)点击这个按扭时弹出提示框,并显示“你好”
d)必须把alert改为window.alert才能正常运行
21、若y , x,z为int型变量,则执行以下语句后,z的值为()
var x=10;
y=x++ + ++x;
z = y-- - --y;
A、12
B、2
C、10
D、0
22、以下代码执行结果为:()
<script>
var num="24linux"+6;
alert(num)
</script>
A 30
B 24linux6
C 6
D 30linux
23、以下代码运行结果:()
<script>
var A = "PHPJavaScript";
var B = "PHPJavaScript";
var C = A.substr(3);
var D = B.substring(0,3);
alert(C+" is "+D);
</script>
A JavaScript is PHP
B is JavaScript
C PHP is JavaScript
D JavaScript is
24、以下JavaScript的内置对象中,哪一个是静态对象,不用通过new关键字去实例化:()
A、String
B、 Date
C、 Math
D、Array
25、在HTML DOM中,那一项不是document对象中的成员:()
A、bgColor
B、onload
C、title
D、forms
26、在下面有一个名为frm的表单,在这个表单中有一个name=username的属性,value属性的值为admin,在javaScript中获取值admin的方法不正确的是:()
<form name=”frm”>
Username:<input type=”text”name=”username”value=”admin”/>
</form>
A、ername.value
B、document.forms[“frm”].username.value
C、document.forms.item(“frm”).username.value
D、document.frm[0].username.value
27、在下面给出的JavaScript事件中,那一个可以在非表单中使用:()
A、submit
B、focus
C、change
D、keydown
28、执行完以下代码后,变量$num的值为:()
<script>
var num=10;
function csdn(number)
{
Var number = number+20
}
csdn(num);
alert(num);
</script>
A、10
B、20
C、30
D、显示错误
29、js中控制浏览器页面后退使用()
A、 history.back()
B、 back
C、 go
D、 document.go(-1)
30、当 Ajax 请求完成时,XMLHttpRequest 对象的 readyState 值是()
A、1
B、2
C、3
D、4
31、定义抽象类时需要加的修饰关键字()
A.public
B.interface
C. implements
D.abstract
32、一个类继承父类的同时实现多个接口的正确写法()
A.class 类名extends 父类名,接口1,接口2,……{
}
B.class 类名 implements接口1,接口2,…… extends 父类名{
}
C. class 类名extends 父类名 implements接口,1接口2,……{
}
D. class 类名 implements父类名 implements接口,1接口2,……{
}
33、自动加载类函数()
A.include()
B. require()
C.__autoload()
D.__call()
34、能够返回键盘上的按键对应字符的事件是( )
A onKeyDown
B onKeyPress
C onKeyUp
D onMouseOver
35、如果父类中方法加上private修饰关键字,子类在继承中重载此方法不可以使用的修饰关键字()
A.var
B. public
C.protected
D.private
36、除了使用function __construct()定义构造方法外,还可以使用()
A.function __destruct()
B. function 类名()
C.function __tostring()
D.function __call()
37、获得实例化对象所属类名字的函数()
A. get_class()
B. get_object_vars()
C. get_class_methods()
38、以下说法错误的是()
A. final关键字标识的类不能被继承
B. final关键字标识既可以标识成员方法,也可以标识成员属性
C. 在静态方法中只能访问静态成员
D. 将类中的成员属性定义为常量使用const
39、以下说法错误的是()
A. 在外部访问静态成员属性时使用类名::静态成员属性名
B. 在外部访问静态成员属性时使用 $实例化对象->静态成员属性名
C. 在外部访问静态方法时使用$实例化对象 ->静态方法名
D. 在外部访问静态方法时使用类名::静态方法名
40、以下哪个技术不是Ajax技术体系的组成部分?
A. XMLHttpRequest
B. DHTML
C. CSS
D. DOM
二、编程题(共8道)
1,请通过写出一个表单,包含标题和内容。

标题为title,内容字段为content <html>
<head>
<title>内容</title>
<meta charset=’utf-8’ />
</head>
<body>
<form action=’1.php’ method=’post’>
<input type=’text’ name=’title’ value=’’ /><br />
<textarea name=’content’ rows=’4’
cols=’40’></textarea><br />
<input type=’submit’ name=’sub’ value=’提交’ /> </form>
</body>
</html>
2,请接收到title和content内容
<?Php
Echo $_POST[‘title’];
Echo $_POST[‘content’];
>
3,设计一个数据库test,表名为test_content 字段为id,title和content
Create table test(
Id int unsigned not null auto_increment primary key,
Title char(30) not null default ‘标题’,
Content varchar(255) not null default ‘内容’
)ENGINE=InnoDB DEFAULT CHARSET=UTF8;
4,将接收到的内容title和content采用pdo预处理的方式写入进入数据库<?Php
Try{
$pbo = new
PDO(‘mysql:dbname=test;host=localhost’,’root’,’123’);
$pdo->query(‘set names utf8’);
}catch(PDOException $e){
Echo ‘数据库连接失败,原因:’.$e->getMessage();
Exit;
}
$sql = “insert into test values(null,:t,:c)”;
$stmt = $pdo->prepare($sql);
$stmt->bindvalue(‘t’,$_POST[‘title’]);
$stmt->bindvalue(‘c’,$_POST[‘content’]);
$stmt->execute();
Echo “成功添加”.$stmt->rowCount().’条’;
>
5,做一个页面list.php页面,采用pdo的方式遍历出结果。

<?php
try{
$pdo = new PDO('mysql:dbname=lamp71;host=localhost','root','654321');
}catch(PDOExcaption $e){
echo "数据库连接失败,原因:".$e->getMessage();
}
$stmt = $pdo->query('select * from stu');
$m=0;
while(list($id,$name,$age,$sex,$classid)=$stmt->fetch(PDO::FETCH_NUM)){ $list[$m]['id'] = $id;
$list[$m]['name'] = $name;
$list[$m]['age'] = $age;
$list[$m]['sex'] = $sex;
$list[$m]['classid'] = $classid;
$m++;
}
echo "<pre>";
var_dump($list);
echo "</pre>";
>
<?php
try{
$pdo = new PDO('mysql:dbname=lamp71;host=localhost','root','654321');
}catch(PDOException $e){
echo "数据库连接失败,原因是:".$e->getMessage();
}
$stmt = $pdo->query('select * from stu');
while(list($id,$name,$sex,$age,$classid)=$stmt->fetch(PDO::FETCH_NUM)){ $list[] = $id.":".$name.":".$sex.":".$age.":".$classid;
}
echo "<pre>";
var_dump($list);
echo "</pre>";
>
6,将遍历出来的结果放入一个数组中,并通过smarty中的assign分配至一个模版页中
$this->assign(‘list’,$list);
$this->display();
7,在模版中使用foreach遍历并显示标题
{foreach $list as $v}
{$v.id}
{$v.title}
{$v.content}
{/foreacj}
8,简单说说MVC模式
M:model数据库的操作层
V:view视图层
C:controller控制器层
MVC是一种模型,是一种编程思想,把一个应用的输入,输出,数据处理分开,分解,耦合。

使用MVC的优点:低耦合性,高重用性,较低的生命周期成本,快速的开发部署,可维护性,可扩展性,有利于软件工程化管理。

相关文档
最新文档