您的当前位置:首页正文

PHP复习题附答案

2020-08-17 来源:好走旅游网
php复习题

第2章 数据与变量

1. 写出相关PHP代码的输出结果。 (1) $a = \"hello\"; $b = &$a; $b = 100; echo $a;

答案:100

(2)

$test = ‘aaaaaa’; $abc = &$test; unset($test); echo $abc; 答案:aaaaaa (3)

$var1 = 5; $var2 = 1;

function get_value(){ global $var2; $var1 = 0;

return $var2++; }

get_value(); echo $var1, $var2; 答案:52

(4)

function get_count(){ static $count = 2; return $count++; }

$count = 5; get_count(); echo get_count(); 答案:3 (5)

$num =10;

function multiply(){ $num =$num *10; }

multiply();

echo $num;答案:10

第3章 运算符与控制流程 1. 写出相关PHP代码的输出结果。 (1)

$str1 = null; $str2 = false;

var_dump($str1==$str2);

答案:bool(true)

(2) $str1 = 0; $str2 = ‘0’;

var_dump($str1===$str2);

答案:bool(false)

(3)

$a2 = false;

echo empty($a2) ? ‘true’ : ‘false’; 答案:true (4)

$a4 = ”;

echo empty($a4) ? ‘true’ : ‘false’;

答案:true

(5)

$a6 = ‘null’;

echo empty($a6) ? ‘true’ : ‘false’;

答案:false

(6)

$a8 = array(array());

echo empty($a8) ? ‘true’ : ‘false’; 答案:false (7) $i=10;

$n = $i++;

echo $n, $i++, ++$i;

答案:101113

2. 简答题

(1) include与require的区别。

答案:

require 的使用方法如 require(\"MyRequireFile.php\"); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。

include 使用方法如 include(\"MyIncludeFile.php\"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。

include()与require()的功能也基本相同(包含),但在用法上也有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如在下面代码中,如果变量$a为真,则将包含文件a.php: if($a){

include(\"a.php\");

}

而require()则和include()不同,不管$a取何值,下面的代码将把文件a.php包含进文件里: if($a){ require(\"a.php\"); }

require一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误

include一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误。

(2) “===”是什么?试举一个“==”是真但“===”是假的例子。 答案:“===”是既可以返回布尔值“假”,也可以返回一个不是布尔值但却可以赋与“假”值的函式,strpos() 和 strrpos() 便是其中两个例子。 if (strpos(\"abc\

// 这部分永不会被执行,因为 \"a\" 的位置是 0,换算成布尔值“假”

}

if (strpos(\"abc\ // 这部份会被执行,因为“===”保证函式 strpos() 的送回值不会换算成布尔值.} 第4章 PHP函数

1. 写出相关PHP代码的输出结果。 (1)

function m($val){ ++$val; }

$val = 10; m($val); echo $val; 答案:10

(2)

function get_arr($arr){ unset($arr[0]); }

$arr1 = array(1, 2);

get_arr($arr1);

echo count($arr1);//count个数

答案:2

(3)

function sum(...$numbers) { $acc = 0;

foreach ($numbers as $n) {

$acc += $n; }

return $acc; }

echo sum(1, 2, 3, 4, 5);

答案:15

2. 写代码、编程序

(1) 编写用户定义函数 is_leap,用于测试参数($year)指定的年份是否是闰年,并返回一个布尔型的值。参数($year)的默认值是2000。

答案:

function is_leap($year){

if($year%100==0){//判断世纪年

if ($year%400==0&&$year%3200!=0){

return \"世纪年\".$year.\"是闰年!\";//世纪年里的闰年 }

else{

return \"世纪年\".$year.\"不是闰年!\"; } }

else{//剩下的就是普通年了

if($year%4==0&&$year%100!=0){

return \"普通年\".$year.\"是闰年!\";//普通年里的闰年 }

else {

return \"普通年\".$year.\"不是闰年!\"; } } } >

3. 简答题

(1) php中函数传递参数的方式有哪两种?两者有什么区别?

答案:

GET方式:url.php?id=1 得到方式 $_GET['id']

POST方式:在form表单里面把action=\"url.php\" ,然后在url.php里面用$_POST['id']去得到

第5章 处理字符串

1. 写出相关PHP代码的输出结果。 (1) 假设程序代码使用UTF-8编码。

$str = \"您好hello\"; //汉字在utf-8里占3个

echo strlen($str); 答案:11 (2)

$arr1 = $arr2 = array(\"img12.png\usort($arr1, \"strcmp\"); print_r($arr1);

答案:Array ( [0] => img1.png [1] => img10.png [2] => img12.png [3] => img2.png )

(3)

$str = \"Java语言Java语言\"; $str1 = \"av\";

echo strpos($str, $str1, 2);

答案:11

(4)

$str = \"Java语言Java语言\"; $str1 = \"av\";

echo strrpos($str, $str1, -10); 答案:1 (5)

$s = '12345'; $s[$s[1]] = '2';

echo $s;答案:12245 (6)

$search = array('A', 'B', 'C', 'D', 'E'); $replace = array('B', 'C', 'D', 'E', 'F');

$subject = 'A';

echo str_replace($search, $replace, $subject);

答案:F

(7)

$str = \"Line 1\\nLine 2\\rLine 3\\r\\nLine 4\\n\"; $str1 = nl2br($str);

$str2 = htmlspecialchars($str1);//用实体来表示

echo $str2;

答案:Line 1
Line 2
Line 3
Line 4
(8)

$a = preg_match(\"/111[^abc]999/\不能有a,b,c $b = preg_match(\"/111[\\w\\D]999/\echo $a.$b; 答案:01

(9)

preg_match('/(?:red|white) (king|queen)/', 'the white queen', $result); print_r($result);

答案:Array ( [0] => white queen [1] => queen ) (10)

$a = preg_match ('/^[a-zA-Z_]\\w*$/', \"^awww\");//w单词字符 $b = preg_match ('/^[a-zA-Z_]\\w*$/', \"_123_\"); echo $a.$b; 答案:01

2. 写代码、编程题

(1) 给定一个用逗号分隔一组值的字符串$str,请写php代码把每个独立的值放入一个新创建的数组$arr中。

(2) 有如下数组:

$arr = array('james', 'tom', 'symfony');

请写PHP代码将$arr数组的各元素值用逗号连接合并成一个字符串并输出。 (3) 写出一个能匹配身份证号码(18位)的正则表达式。

3. 简答题

(1) 以下代码是判断字符串中是否存在#符号,请问是否正确?若错误,请修改之。 if(strpos($str, \"#\")) { … }//如果是第一个找到,返回0.则是fulse,不符合,改成!=fulse 第6章 MySQL与PHP

一. 根据要求写代码

1. 在MySQL监视器命令行状态下,创建一个名为mydb的数据库,数据库的默认字符集为utf8,排序规则为utf8_bin。

答案:creste database mydb character set=utf8 collate=utf8_bin

2. 对数据库mydb中所有表的结构和数据进行备份,备份产生的sql脚本文件mydb.sql保存在当前目录下。假设用户名为root,无密码。 答案:mysqldump -u root -p mydb > mysql.sql

3. 假设与数据库的连接已经建立,连接对象是$mysqli。现在请写出代码:执行查询语句\"SELECT * FROM student\",然后输出查询结果的行数。

答案:$result=$mysqli->query(“SELECT * FORM student”);

Echo $result->num_rows;

4. 假设下面代码已经成功执行,其中mysqli表示与数据库的连接对象:

$result = $mysqli->query(\"SELECT * FROM student\");

现在请写代码,要求是:获取查询结果第3行的数据并放入数组$row中。

答案:$result->data_seek(2);

$row=$result->fetch_array();

5. 下面PHP代码执行一条预处理的SQL SELECT语句,并显示查询结果。其中,$mysqli是一个已经创建的数据库连接对象。请根据注释完善代码。

$stmt = $mysqli->stmt_init();

$sql = \"select sn,password,name,gender from student where gender = ?\"; $stmt->prepare($sql);

$var1 = \"男\";

____$stmt->bind_param(“s”,$var1);__ // 将变量$var1绑定至预处理语句中的参数

$stmt->execute();

____$stmt->bind _result($sn,$password,$name,$gender);__ // 将查询结果各列绑定至变量

while($row = $stmt->fetch()) {

echo $sn.” “.$password.” “.$name.” “.$gender.”
”;

}

二、简答题

1. 在PHP中,如何利用mysqli类实现与MySQL数据库的连接? 答案:

function connect() {

@ $mysqli = new mysqli('localhost', 'root', '123', 'elective_manage'); return $mysqli;

}

function executeSql($mysqli, $sql) { $mysqli->set_charset('UTF8'); $result = $mysqli->query($sql); return $result; }

第7章 表单与会话

一、读代码写结果

1. 有pahe1.html和page2.php两个页面,代码如下: page1.html:

Please Enter:

page2.php:

$content1 = $_POST['c1'];

echo \"content1:$content1\"; >

现在page1.html页面已经打开,如果在其中的文本域中输入:true,那么按递交按钮后窗口将显示?答案:content1:

2. 运行以下代码将显示什么值?假设代码运行时的 URL 是:testscript.php?c=25。 function process($c, $d = 25) {

global $e;

$retval = $c + $d - $_GET['c'] - $e;//5+25-25=5 return $retval; }

$e = 10;//全局变量,整个文件中有效,但函数中无效!!! echo process(5);

答案:5

二. 根据要求写代码

1. 已知$f_name是一个使用utf-8编码的字符串,请将其转换成使用gbk编码的字符串。 答案:$f_name=iconv(“utf-8”,”GBK”,$f_name);

2. 假设$o_name是一个上传文件的文件名(含路径)。使用PHP代码将该上传文件移至新的

位置。$d_name是目标位置和文件名。

答案:move_uploafed_file................................。

三、简答题

1. 哪一个php函数可以把浏览器转向到另一个页面?请举例说明。 答案:header,header(\"Location: index1.php\");

2. $_FILES是几维数组?第一维和第二维的索引下标分别是什么? 答案:二维数组,第一位是上传文件主键name属性值。。。,第二位是。。。。。 $_FILES[‘file1’][‘error’],$_FILES[‘file1’][‘tmp_name’], 第8章 使用数组 一、读代码写结果 1.

define(\"myvalue\$myarray[10] = \"Dog\"; $myarray[] = \"Human\"; $myarray[\"myvalue\"] = \"Cat\"; $myarray[\"Dog\"] = \"Cat\"; print $myarray[myvalue]; 答案:Dog 2.

$myarray = array(\"aaa\foreach ($myarray as $key => $value) { $myarray[$key] = $value.\"-123\"; }

print $myarray[1]; 答案:bbb-123 3.

define(\"STOP_AT\

$result = array();

for($idx=1; $idxprint_r($result[8]);

答案:256

4.

$a = array(\"a\" => \"apple\

$b = array(\"a\" => \"pear\print_r(array_merge($a, $b));

答案:Array ( [a] => pear [b] => strawberry [c] => cherry )

二、根据要求写代码

1. 测试数组$arr中是否包含键为\"x\"的元素,若存在输出该元素的值。 Chap8.ppt----p6,p7,p8--wy稻草人

因篇幅问题不能全部显示,请点此查看更多更全内容