《PHP程序设计》复习题参考答案
《PHP程序设计》复习题参考答案
1. metadata 2. http-equiv 3. PHP: Hypertext Preprocessor 4. CGI和mod_php
5. 以mod_php模式运行PHP,意味着php是作为apache的一个模块来启动的,因此只有在apache启动的时候会读取php.ini配置文件并加载扩展模块,在apache运行期间是不会再去读取和加载扩展模块的。
6. 将PHP后台运行得到的数据输出到浏览器页面中。 7. (1) 中国$str! (2) 中国加油!
8. 布尔值false,整型值0,浮点型值0.0,空白字符串,字符串'0', 空数组,特殊数据类型NULL, 没有设定的变量。 9. sparkqty321 10. global
11. $_POST, $_GET, $_REQUEST, $_SESSION, $_COOKIE, $_FILES,$_SERVER, $_ENV, $GLOBALS
12. __LINE__ 、 __FILE__ 、 __DIR__ 、 __FUNCTION__ 、 __CLASS__ 、 __TRAIT__、 __METHOD__ 、__NAMESPACE__
13. (1) 数组是一个可以存储一组或一系列数值的变量(复合型变量);(2) 索引数组(索引值为数字,以 0 开始)和关联数组(以字符串作为索引值);(3) 数组的声明方式主要有两种:A. 通过 array( )函数声明数组,可以通过 key=>value的方式分别定义索引和值,也可以不定义数组的索引下标,只给出数组的元素值。B. 直接为数组元素赋值,不需要调用array( )函数。例如:$arr[0] = 1; $arr[1] = 2;
14. 使用array_merge( ),如果是关联数组合并,如果数组的键名相同,那么后面的值将覆盖前者;如果是数字索引数组合并,则不覆盖,而是后者附加到前者后面。使用数组加法运算,与 array_merge( )不同,加法运算不管是关联数组还是数字索引数组,都是将相同键名的值舍弃,也就是只保留首次出现该键名的元素,后来的具有相同键名的元素都不会被加进来。
15. 把一个或多个变量,建立成数组元素,这些数组元素的键名就是变量的变量名,值是变量的值。
16. explode ( string $separator , string $string [, int $limit ] ) 使用一个分隔字符来分隔一个字符串。
implode ( string $glue , array $arr ) 使用一个连接符将数组中的每个单元连接为一个字符串。
17.
<form method="post" action="">
您的Email地址:<br> <input type="email" name="Email" size=31><br>
您的留言: <br> <textarea name="note" rows=10 cols=30></textarea>
<br><input type="submit" name="bt1" value="提交">
</form>
<?php
$Email=$_POST['Email'];
$note=htmlspecialchars($_POST['note']);
echo "用户".$Email."您好! ";
echo "<br>您的留言是:<br> ".$note."<br>";
?>
18. #^[0-9]{17}([0-9]|X|Y)$#
19. 与依次调用fopen( )、fwrite( )及fclose( )函数的功能一样,默认是直接覆盖原有文件的内容。
20. (1) 必须使用POST方式提交(设置表单 method="post" );(2) 必须设置表单enctype属性为 enctype="multipart/form-data" ;(3) 表单中要有一个文本域控件。
21. $_FILES['上传控件的name'][ 'name'|'type'|'tmp_name'|'size'|'error']
22. 不完全正确。Cookie是运行在客户端,由客户端进行管理;Session虽然是运行在服务器端,但是sessionID作为一个Cookie是存储在客户端的。
23. 错误。Cookie确实可能存在一些不安全的因素,但和JavaScript一样,即使突破前端验证,还有后端保证安全。所以,一切都要看设计。如果说不安全,也是由于代码不安全,错误地把身份验证的Cookie作为权限验证来使用。
24. 是的。这属于Cookie劫持的一种做法。
25. 使用urlencode()对中文进行编码,使用urldecode()来解码。
26. 类名:: 或self:: 27. Traits机制 28. __call
29. 查询考试成绩比该课程平均成绩低的学生的学号、课程号、成绩。
30. 第一个是返回结果集中的一行作为索引数组(键名是数字的数组称之为索引数组),第二个是返回关联数组(至少有一个键名是字符串的数组称之为索引数组),而第三个既可以返回索引数组也可以返回关联数组,取决于它的第二个参是MYSQL_BOTH或MYSQL_NUM或MYSQL_ASSOC 默认为MYSQL_BOTH。
31. PDO PDOStatement
32. 事务处理:通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。PDO事务处理的实现过程:首先定义数据库连接的参数,创建try{ }catch{ }语句,在try{ }语句中实例化PDO构造函数,完成与数据库的连接,并且通过beginTransaction( )方法开启事务;然后写事务处理业务逻辑代码,通过commit( )方法完成事务的提交操作;最后在catch{ }语句中返回错误信息,并且通过rollback( )执行事务的回滚操作。
33. Ajax是Asynchronous JavaScript and XML的缩写,是JavaScript、XML、CSS、DOM等多个技术的组合。Ajax的工作原理是一个页面的指定位置可以加载另一个页面所有的输出内容,这样就实现了一个静态页面也能获取到数据库中的返回数据信息了。所以Ajax技术实现了一个静态网页在不刷新整个页面的情况下与服务器通信,减少了用户等待时间,同时也从而降低了网络流量,增强了客户体验的友好程度。
Ajax的核心技术是XMLHttpRequest,它是JavaScript中的一个对象。Ajax的优点是:(1)减轻了服务器端负担,将一部分以前由服务器负担的工作转移到客户端执行,利用客户端闲置的资源进行处理;(2)在只局部刷新的情况下更新页面,增加了页面反应速度,使用户体验更友好。Ajax的缺点是不利于SEO推广优化,因为搜索引擎无法直接访问到Ajax请求的内容。