php复习题及答案
- 格式:doc
- 大小:42.50 KB
- 文档页数:5
php期末复习题及答案### PHP期末复习题及答案#### 一、选择题1. PHP是一种:- A. 网页设计语言- B. 服务器端脚本语言- C. 客户端脚本语言- D. 数据库查询语言答案:B2. 下列哪个是PHP的内置超全局数组?- A. `$_GET`- B. `$_POST`- C. `$_SESSION`- D. 所有选项答案:D3. 在PHP中,哪个函数可以用来获取当前脚本的文件名? - A. `basename()`- B. `dirname()`- C. `__FILE__`- D. `pathinfo()`答案:C#### 二、简答题1. 简述PHP中的变量作用域。
- 局部变量:在函数内部定义,只在函数内部有效。
- 全局变量:在整个脚本中都有效,可以在函数内部通过`global`关键字访问。
- 静态变量:在函数内部定义,函数调用结束后仍然保持其值。
2. 描述PHP中如何实现错误处理。
- 使用`try`和`catch`块来捕获和处理异常。
- 设置错误处理函数,使用`set_error_handler()`函数。
- 使用`error_reporting()`函数设置错误报告级别。
#### 三、编程题1. 编写一个PHP函数,实现计算两个数的和。
```phpfunction sum($num1, $num2) {return $num1 + $num2;}```2. 编写一个PHP脚本,使用`for`循环打印出1到10的数字。
```php<?phpfor ($i = 1; $i <= 10; $i++) {echo $i . "<br>";}>```#### 四、案例分析题给定以下PHP代码片段,分析并解释其功能:```php<?phpclass Person {private $name;public function __construct($name) {$this->name = $name;}public function greet() {echo "Hello, my name is " . $this->name . "!";}}$person = new Person("John");$person->greet();>```答案:这段代码定义了一个名为`Person`的类,它有一个私有属性`$name`和一个构造函数`__construct`,用于初始化`$name`属性。
php考试题及答案PHP考试题及答案一、选择题(每题2分,共20分)1. PHP中哪个函数用于发送原始的HTTP头信息?A. header()B. echo()C. print()D. printf()答案:A2. 在PHP中,以下哪个是正确的字符串连接运算符?A. &&B. ||C. +D. &&答案:C3. PHP中哪个函数用于获取当前脚本的路径?A. __FILE__B. __DIR__C. __LINE__D. __FUNCTION__答案:A4. 下列哪个选项不是PHP的超级全局变量?A. $_GETB. $_POSTC. $_SESSIOND. $_COOKIE答案:C5. 在PHP中,哪个函数用于输出一个或多个值,并且输出后终止当前脚本的执行?A. exit()B. die()C. echo()D. print()答案:B6. PHP中哪个函数用于计算数组中元素的个数?A. count()B. sizeof()C. length()D. size()答案:A7. 下列哪个选项是PHP中正确的数组声明方式?A. $array = array("color" => "red", "size" => "large", "shape" => "sphere");B. $array = new Array("color" => "red", "size" => "large", "shape" => "sphere");C. $array = Array("color" => "red", "size" => "large", "shape" => "sphere");D. $array = array("color" => "red", "size" => "large", "shape" => "sphere",);答案:A8. PHP中哪个函数用于获取当前时间的Unix时间戳?A. time()B. mktime()C. date()D. getdate()答案:A9. 下列哪个选项是PHP中正确的条件语句?A. if ($x > 0) { echo "Positive"; } else { echo "Not positive"; }B. if $x > 0 then echo "Positive"; else echo "Not positive"; end if;C. switch ($x) { case $x > 0: echo "Positive"; break; default: echo "Not positive"; }D. if ($x > 0) echo "Positive"; else echo "Not positive";答案:A10. PHP中哪个函数用于将字符串分割成数组?A. explode()B. implode()C. split()D. join()答案:A二、填空题(每题3分,共15分)1. PHP中,使用______函数可以输出HTML内容,并且输出后不会终止脚本执行。
php期末复习题及答案一、单项选择题(每题2分,共10分)1. PHP中,以下哪个函数用于获取当前脚本的名称?A. basename()B. dirname()C. pathinfo()D. realpath()答案:A2. 在PHP中,以下哪个关键字用于定义类?A. functionB. classC. interfaceD. trait答案:B3. PHP中,以下哪个函数用于将字符串转换为小写?A. strtoupper()B. strtolower()C. ucfirst()D. ucwords()答案:B4. 在PHP中,以下哪个函数用于发送原始的HTTP头到客户端?A. header()B. setcookie()C. session_start()D. ob_start()答案:A5. PHP中,以下哪个函数用于将数组元素与数组中的键关联起来?A. array_keys()B. array_values()C. array_combine()D. array_merge()答案:C二、填空题(每题2分,共10分)1. PHP中,全局变量前缀为______。
答案:$2. 在PHP中,使用____关键字可以定义一个常量。
答案:define()3. PHP中,____函数用于输出一个或多个表达式的值,并且输出后不换行。
答案:echo4. PHP中,____函数用于输出一个或多个表达式的值,并且输出后换行。
答案:print5. 在PHP中,____函数用于获取当前时间的Unix时间戳。
答案:time()三、简答题(每题5分,共20分)1. 请简述PHP中什么是超全局变量,并给出一个例子。
答案:超全局变量是PHP中预定义的变量,它们在一个请求的生命周期内始终可用,且在脚本中的任何位置都可以访问。
例如,$_SERVER是一个超全局变量,它包含了诸如头信息、路径和脚本位置等信息。
2. 解释PHP中的魔术方法__construct和__destruct的作用。
1. 写出如下程序的输出结果<?$str1 = null;$str2 = false;echo $str1==$str2 ? ‘相等’: ‘不相等’;$str3 = ”;$str4 = 0;echo $str3==$str4 ? ‘相等’: ‘不相等’; 答:相等相等不相等$str5 = 0;$str6 = ‘0′;echo $str5===$str6 ? ‘相等’: ‘不相等’;?>2. 写出如下程序的输出结果<?$a1 = null;$a2 = false;$a3 = 0;$a4 = ”;$a5 = ‘0′;$a6 = ‘null’;$a7 = array();$a8 = array(array());答:true true true true true false true false echo empty($a1) ? ‘true’ : ‘false’;echo empty($a2) ? ‘true’ : ‘false’;echo emp ty($a3) ? ‘true’ : ‘false’;echo empty($a4) ? ‘true’ : ‘false’;echo empty($a5) ? ‘true’ : ‘false’;echo empty($a6) ? ‘true’ : ‘false’;echo empty($a7) ? ‘true’ : ‘false’;echo empty($a8) ? ‘true’ : ‘false’;?>3. 写出如下程序的输出结果<?$test = ‘aaaaaa’;$abc = & $test;unset($test); 答:aaaaaaecho $abc;?>4. 写出如下程序的输出结果<?$count = 5;function get_count(){static $count = 0;return $count++;}echo $count; 5 答:5 0 1 ++$count;echo get_count(); 0echo get_count(); 1?>5. 写出如下程序的输出结果<?$GLOBALS[’var1’] = 5;$var2 = 1;function get_value(){global $var2;$var1 = 0;return $var2++; 答:5 2 }get_value();echo $var1;echo $var2;?>6. 写出如下程序的输出结果<?function get_arr($arr){unset($arr[0]);}$arr1 = array(1, 2);$arr2 = array(1, 2);答:1 2get_arr(&$arr1);get_arr($arr2);echo count($arr1);echo count($arr2);7. 11.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
答:<?phpfunction my_scandir($dir){$files=array();if(is_dir($dir)){if($handle=opendir($dir)){while(($file=readdir($handle))!==false){if($file!=”.” && $file!=”..”){if(is_dir($dir.”/”.$file)){$files[$file]=my_scandir($dir.”/”.$file);}else{$files[]=$dir.”/”.$file;}}}closedir($handle);return $files;}}}print_r(my_scandir(“D:Program FilesInternet ExplorerMUI”));?>8. 在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;而链接到当前页面的的前一页面URL记录在预定义变量(2)中<?php//本页地址,SCRIPT_NAME也可以:php/test.phpecho $_SERVER[‟PHP_SELF‟].”<br />”;//链接到当前页面的前一页面的URL地址:echo $_SERVER[‟HTTP_REFERER‟].”<br />”;//其它的见参考手册:语言参考》变量》预定义变量//前执行脚本的绝对路径名:D:Inetpubwwwrootphp est.phpecho $_SERVER[”SCRIPT_FILENAME”].”<br />”;//正在浏览当前页面用户的IP地址:127.0.0.1echo $_SERVER[”REMOTE_ADDR”].”<br />”;//查询(query)的字符串(URL中第一个问号? 之后的内容):id=1&bi=2echo $_SERVER[”QUERY_STRING”].”<br />”;//当前运行脚本所在的文档根目录:d:inetpubwwwrootecho $_S ERVER[”DOCUMENT_ROOT”].”<br />”;?>9. 执行程序段<?php echo 8%(-2) ?>将输出__。
<?php//参考手册》语言参考》运算符》算术运算符》%为取模运算,输出0echo 8%(-2).”<br />”;//取模$a % $b在$a为负值时的结果也是负值。
输出-2echo ((-8)%3).”<br />”;//输出2echo (8%(-3)).”<br />”;?>10..在HTTP 1.0中,状态码401的含义是____;如果返回“找不到文件”的提示,则可用header函数,其语句为____。
答:401表示未授权;header(“HTTP/1.0 404 Not Found”);[见参考手册]函数参考》HTTP函数》header]11 .数组函数arsort的作用是____;语句error_reporting(2047)的作用是____。
答:arsort:对数组进行逆向排序并保持索引关系error_reporting(2047)的作用是:report All errors and warnings12.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉):答:<?php$script=”以下内容不显示:<script language=‟javascript‟>alert(…cc‟);</script>”;echo preg_replace(“/<script[^>].*?>.*?</script>/si”, “替换内容”, $script);?>13. 以Apache模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,然后再用语句____使得Apache把所有扩展名为php的文件都作为PHP脚本处理。
答:LoadModule php5_module “c:/php/php5apache2.dll”;AddType application/x-httpd-php .php14.语句include和require都能把另外一个文件包含到当前文件中,它们的区别是____;为了避免多次包含同一文件,可以用语句____来代替它们。
答:在如何处理失败时,include() 产生一个警告而require() 则导致一个致命错误;require_once()/include_once()15.一个函数的参数不能是对变量的引用,除非在php.ini中把____设为on.答:allow_call_time_pass_reference boolean :是否启用在函数调用时强制参数被按照引用传递, 见参考手册》附录G16. 在PHP中,heredoc是一种特殊的字符串,它的结束标志必须____答:结束标识符所在的行不能包含任何其它字符除”;”17. 11.SQL中LEFT JOIN的含义是__自然左外链接__。
答:自然左外连接create database phpinterview;use phpinterviewcreate table tbl_user(ID int not null,name varchar(50) not null,primary key (ID));create table tbl_score(ID int not null,score dec(6,2) not null,subject varchar(20) not null);insert into tbl_user (ID, n ame) values (1, …beimu‟);insert into tbl_user (ID, name) values (2, …aihui‟);insert into tbl_score (ID, score, subject) values (1, 90, …语文‟);insert into tbl_score (ID, score, subject) values (1, 80, …数学‟);insert into tbl_score (ID, score, subject) valu es (2, 86, …数学‟);insert into tbl_score (ID, score, subject) values (2, 96, …语文‟);select A.id,sum(B.score) as sumscorefrom tbl_user A left join tbl_score Bon A.ID=B.IDgroup by A.id18.用php打印出前一天的时间,格式是:2012-5-10 22:21:21 。
答:<?phpecho date("Y-m-d H:i:s",time()-60*60*24);//或者echo date("Y-m-d H:i:s",strtotime("-1 day"));?>19.指出echo(),print(),print_r()的区别。
答:echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)print只能打印出简单类型变量的值(如int,string)print_r可以打印出复杂类型变量的值(如数组,对象)echo -- 输出一个或者多个字符串20.能够使html和php分离开使用的模板。