第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:
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; $idx 答案: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稻草人 因篇幅问题不能全部显示,请点此查看更多更全内容