php笔试试题

2016-03-19 17:39:47 php笔试试题笔试

  下面是留学群小编整理提供的php笔试试题,欢迎阅读。

  php笔试试题(一)

  1、抓取远程图片到本地,你会用什么函数?

  fsockopen, A

  2、用最少的代码写一个求3值最大值的函数.

  function($a,$b,$c){

  * W0 z* u6 k+ e. L a: }5 } return $a>$b? ($a>$c? $a : $c) : ($b>$c? $b : $c );

  5 O: F6 v1 W# U}

  3、用PHP打印出前一天的时间,打印格式是2007年5月10日22:21:21

  Echo date('Y-m-d H:i:s',strtotime('-1 day'));

  4、javascript能否定义二维数组,如果不能你如何解决?

  javascript不支持二维数组定义,可以用arr[0] = new array()来解决

  5、假设a.html和b.html在同一个文件夹下面,用javascript实现当打开a.html五秒钟后,自动跳转到b.html。

  function go2b(){

  window.location = "b.html";

  window.close();

  }

  setTimeout( "go2b()",5000 ); //5秒钟后自动执行go2b()

  6、//正在浏览当前页面用户的 IP 地址:127.0.0.1

  echo $_SERVER["REMOTE_ADDR"]."

  ";

  //查询(query)的字符串(URL 中第一个问号 ? 之后的内容):id=1&bi=2

  echo $_SERVER["QUERY_STRING"]."

  ";

  //当前运行脚本所在的文档根目录:d:inetpubwwwroot

  echo $_SERVER["DOCUMENT_ROOT"]."

  ";

  7、在HTTP 1.0中,状态码 401 的含义是未授权____;如果返回"找不到文件"的提示,则可用 header 函数,其语句为header("HTTP/1.0 404 Not Found");

  答:401表示未授权;header("HTTP/1.0 404 Not Found");

  8、写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。

  function 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"));

  ?>

  9、把 John 新增到 users 阵列?

  $users[] = 'john'; array_push($users,'john');

  10、在PHP中error_reporting这个函数有什么作用?

  答:error_reporting() 设置 PHP 的报错级别并返回当前级别。

  11、请用正则表达式(Regular Expression)写一个函数验证电子邮件的格式是否正确。

  答:

  $email=$_POST['email'];

  if(!preg_match('/^[\w.]+@([\w.]+)\.[a-z]{2,6}$/i',$email)) {

  echo "电子邮件检测失败";

  }else{

  echo "电子邮件检测成功";

  }

  ?>

  12、用PHP写出显示客户端IP与服务器IP的代码

  答:打印客户端IP:echo $_SERVER['REMOTE_ADDR']; 或者: getenv('REMOTE_ADDR');

  打印服务器IP:echo gethostbyname("www.bolaiwu.com")

  13、如何修改SESSION的生存时间(1分).

  答:方法1:将php.ini中的session.gc_maxlifetime设置为9999重启apache

  方法2:$savePath = "./session_save_dir/";

  $lifeTime = 小时 * 秒;

  session_save_path($savePath);

  session_set_cookie_params($lifeTime);

  session_start();

  方法3:setcookie() and session_set_cookie_params($lifeTime);

  14、有一个网页地址, 比如PHP开发资源网主页: http://www.phpres.com/index.html,如何得到它的内容?($1分)

  答:方法1(对于PHP5及更高版本):

  $readcontents = fopen("http://www.phpres.com/index.html", "rb");

  $contents = stream_get_contents($readcontents);

  fclose($readcontents);

  echo $contents;

  方法2:

  echo file_get_contents("http://www.phpres.com/index.html");

  15、请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分)

  答:按值传递:函数范围内对值的任何改变在函数外部都会被忽略

  按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改

  优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。

  按引用传递则不需要复制值,对于性能提高很有好处。

  16、写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名

  例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php

  答案1:

  function getExt($url){

  $arr = parse_url($url);

  $file = basename($arr['path']);

  $ext = explode(".",$file);

  return $ext[1];

  }

  答案2:

  function getExt($url) {

  $url = basename($url);

  $pos1 = strpos($url,".");

  $pos2 = strpos($url,"?");

  if(strstr($url,"?")){

  return substr($url,$pos1 + 1,$pos2 – $pos1 – 1);

  } else {

  return substr($url,$pos1);

  }

  }

  17、使用五种以上方式获取一个文件的扩展名

  要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,

  必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如 get_ext1($file_name), get_ext2($file_name)

  function get_ext1($file_name){

  return strrchr($file_name, '.');

  }

  function get_ext2($file_name){

  return substr($file_name, strrpos($file_name, '.'));

  }

  function get_ext3($file_name){

  return array_pop(explode('.', $file_name));

  }

  function get_ext4($file_name){

  $p = pathinfo($file_name);

  return $p['extension'];

  }

  function get_ext5($file_name){

  return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), '.')));

  }

  18、

  $str1 = null;

  $str2 = false;

  echo $str1==$str2 ? '相等' : '不相等';

  $str3 = ";

  $str4 = 0;

  echo $str3==$str4 ? '相等' : '不相等';

  $str5 = 0;

  $str6 = '0′;

  echo $str5===$str6 ? '相等' : '不相等';

  ?>

  相等 相等 不相等

  19、MySQL数据库中的字段类型varchar和char的主要区别是什么?那种字段的查找效率要高,为什么?

  Varchar是变长,节省存储空间,char是固定长度。查找效率要char型快,因为varchar是非定长,必须先查找长度,然后进行数据的提取,比char定长类型多了一个步骤,所以效率低一些

  20、请使用JavaScript写出三种产生一个Image 标签的方法(提示:从方法、对象、HTML角度考虑)

  (1)var img = new Image();

  (2)var img = document.createElementById("image")

  (3)img.innerHTML = ""

  21、16.请描述出两点以上XHTML和HTML最显著的区别

  (1)XHTML必须强制指定文档类型DocType,HTML不需要

  (2)XHTML所有标签必须闭合,HTML比较随意

  22、写一个排序算法,可以是冒泡排序或者是快速排序,假设待排序对象是一个维数组。

  //冒泡排序(数组排序)

  function bubble_sort($array)

  {

  $count = count($array);

  if ($count <= 0) return false;

  for($i=0; $i<$count; $i++){

  for($j=$count-1; $j>$i; $j–){

  if ($array[$j] < $array[$j-1]){

  $tmp = $array[$j];

  $array[$j] = $array[$j-1];

  $array[$j-1] = $tmp;

  }

  }

  }

  return $array;

  }

  //快速排序(数组排序)

  function quicksort($array) {

  if (count($array) <= 1) return $array;

  $key = $array[0];

  $left_arr = array();

  $right_arr = array();

  for ($i=1; $i

  if ($array[$i] <= $key)

  $left_arr[] = $array[$i];

  else

  $right_arr[] = $array[$i];

  }

  $left_arr = quicksort($left_arr);

  $right_arr = quicksort($right_arr);

  return array_merge($left_arr, array($key), $right_arr);

  }

  23、写出三种以上MySQL数据库存储引擎的名称(提示:不区分大小写)

  MyISAM、InnoDB、BDB(Berkeley DB)、Merge、Memory(Heap)、Example、Federated、Archive、CSV、Blackhole、MaxDB 等等十几个引擎

  24、求两个日期的差数,例如2007-2-5 ~ 2007-3-6 的日期差数

  方法一:

  class Dtime

  {

  function get_days($date1, $date2)

  {

  $time1 = strtotime($date1);

  $time2 = strtotime($date2);

  return ($time2-$time1)/86400;

  }

  }

  $Dtime = new Dtime;

  echo $Dtime->get_days('2007-2-5′, '2007-3-6′);

  ?>

  方法二:

  $temp = explode('-', '2007-2-5′);

  $time1 = mktime(0, 0, 0, $temp[1], $temp[2], $temp[0]);

  $temp = explode('-', '2007-3-6′);

  $time2 = mktime(0, 0, 0, $temp[1], $temp[2], $temp[0]);

  echo ($time2-$time1)/86400;

  方法三:echo abs(strtotime("2007-2-1″)-strtotime("2007-3-1″))/60/60/24 计算时间差

  25、请写一个函数,实现以下功能:

  字符串"open_door" 转换成 "OpenDoor"、"make_by_id" 转换成 "MakeById"。

  方法:

  function str_explode($str){

  $str_arr=explode("_",$str);$str_implode=implode(" ",$str_arr); $str_implode=implode

  ("",explode(" ",ucwords($str_implode)));

  return $str_implode;

  }

  $strexplode=str_explode("make_by_id");print_r($strexplode);

  方法二:$str="make_by_id!";

  $expStr=explode("_",$str);

  for($i=0;$i

  {

  echo ucwords($expStr[$i]);

  }方法三:echo str_replace(' ',",ucwords(str_replace('_',' ','open_door')));

  26、一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数,用SQL语句及视图、

  存储过程分别实现。

  DELIMITER //

  create procedure proc_countNum(in columnId int,out rowsNo int)

  begin

  select count(*) into rowsNo from member where member_id=columnId;

  end

  call proc_countNum(1,@no);

  select @no;

  方法:视图:

  create view v_countNum as select member_id,count(*) as countNum from member group by

  member_id

  select countNum from v_countNum where member_id=1

  27、js中网页前进和后退的代码 ( 前进: history.forward();=history.go(1); 后退: history.back

  ();=history.go(-1); )

  28、echo count("abc"); 输出什么?

  答案:1

  count — 计算数组中的单元数目或对象中的属性个数

  int count ( mixed$var [, int $mode ] ), 如果 var 不是数组类型或者实现了 Countable 接口的对象,将返回1,有一个例外,如果 var 是 NULL 则结果是 0。

  对于对象,如果安装了 SPL,可以通过实现 Countable 接口来调用 count()。该接口只有一个方法 count(),此方法返回 count() 函数的返回值。

  29、有一个一维数组,里面存储整形数据,请写一个函数,将他们按从大到小的顺序排列。要求执行效率高。并说明如何改善执行效率。(该函数必须自己实现,不能使用php函数)

  function BubbleSort(&$arr)

  {

  $cnt=count($arr);

  $flag=1;

  for($i=0;$i<$cnt;$i++)

  {

  if($flag==0)

  {

  return;

  }

  $flag=0;

  for($j=0;$j<$cnt-$i-1;$j++)

  {

  if($arr[$j]>$arr[$j+1])

  {

  $tmp=$arr[$j];

  $arr[$j]=$arr[$j+1];

  $arr[$j+1]=$tmp;

  $flag=1;

  }

  }

  }

  }

  $test=array(1,3,6,8,2,7);

  BubbleSort($test);

  var_dump($test);

  ?>

  30、请举例说明在你的开发过程中用什么方法来加快页面的加载速度

  答:要用到服务器资源时才打开,及时关闭服务器资源,数据库添加索引,页面可生成静态,图片等大文件单独服务器。使用代码优化工具

  31、.以下的代码会产生什么?为什么?

  $num =10;

  function multiply(){

  $num =$num *10;

  }

  multiply();

  echo $num;

  由于函式 multiply() 没有指定 $num 为全域变量(例如 global $num 或者 $_GLOBALS['num']),所以 $num 的值是 10。

  32. php class中static,public,private,protected的区别?

  static 静态,类名可以访问

  public 表示全局,类内部外部子类都可以访问;

  private表示私有的,只有本类内部可以使用;

  protected表示受保护的,只有本类或子类或父类中可以访问;

  33. HTTP协议中GET、POST和HEAD的区别?

  HEAD: 只请求页面的首部。

  GET: 请求指定的页面信息,并返回实体主体。

  POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。

  (1)HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST。事实上 GET 适用于多数请求,而保留 POST 仅用于更新站点。

  (2)在FORM提交的时候,如果不指定Method,则默认为GET请 求,Form中提交的数据将会附加在url之后,以?分开与url分开。字母数字字符原样发送,但空格转换为"+"号,其它符号转换为%XX,其中XX为 该符号以16进制表示的ASCII(或ISO Latin-1)值。GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中;

  GET方式提交的数据最多只能有1024字节,而POST则没有此限制。

  (3)GET 这个是浏览器用语向服务器请求最常用的方法。POST这个方法也是用来传送数据的,但是与GET不同的是,使用POST的时候,数据不是附在URI后面传递的,而是要做为独立的行来传递,此时还必须要发送一个Content_length标题,以标明数据长度,随后一个空白行,然后就是实际传送的数据。网页的表单通常是用POST来传送的。

  php笔试试题(二)

  1. 选择合适的答案填入空白处

  PHP 是一种______脚本语言,基于______引擎。PHP 最常被用来开发动态的______内

  容,此外,它同样还可被用来生成______(以及其他)文档。

  A.动态,PHP,数据库,HTML

  B.嵌入式,Zend,HTML,XML

  C.基于 Perl 的,PHP,Web,静态

  D.嵌入式,Zend,Docbook 文档,MySQL

  E.基于 Zend 的,PHP,图像,HTML

  1. 唯一有意义的答案是 B。PHP 是一种基于 Zend 引擎的脚本语言,它通常被嵌入在 HTML

  代码中。它主要被用来开发 HTML 文档,但是也可以用它来开发其他类型的文档,比

  如 XML。

  2.以下哪种标签不是 PHP 起始/结束符?

  A.<% %>

  B.//

  C.

  D./* */

  E.

  2. PHP 编程中,人们不太使用<% %>和两个标签,但它们确实是合法的 PHP 界定符。

  标签是非法的,因此正确的答案是 D。记住,根据 php.ini 文件中的配置不同,这

  当中的某些标签无法在特定的情况下使用。

  3.以下代码哪个不符合 PHP 语法?

  A.$_10

  B.${"MyVar"}

  C.&$something

  D.$10_somethings

  E.$aVaR

  3. PHP 变量以一个美元符号为开头,后面跟上任意数量的数字、字母和下划线。${"MyVar"}

  是一个合法的变量名,它使用的是较松散的命名约定。&$something 是对$something 的

  引用。然而,变量名不能以数字为开头,$10_somethings 是非法的,因此答案是 D。

  4.运行以下代码将显示什么?

  define(myvalue, "10");

  $myarray[10] = "Dog";

  $myarray[] = "Human";

  $myarray['myvalue'] = "Cat";

  $myarray["Dog"] = "Cat";

  print "The value is: ";

  print $myarray[myvalue]." ";

  ?>

  2

  A.The Value is: Dog

  B.The Value is: Cat

  C.The Value is: Human

  D.The Value is: 10

  E.Dog

  4. 注意,$myarray 的键值并没有打上引号。所以,正在访问的键不是 myvalue 字符串,

  而是常量 myvalue 的值。最终访问的是$myarray[10],值是 Dog,答案是 A。

  5. print()和 echo()有什么区别?

  A.print()能作为表达式的一部分,echo()不能

  B.echo()能作为表达式的一部分,print()不能

  C.echo()能在 CLI(命令行)版本的 PHP 中使用,print()不能

  D.print()能在 CLI(命令行)版本的 PHP 中使用,echo()不能

  E.没有区别:两个函数都打印文本!

  5. 尽管 print()和 echo()在绝大多数情况下可以互换使用,但它们之间还是有一处不同。

  print()是函数,有返回值;echo()实际上是一个语言结构,没有返回值,并且不能在表

  达式中使用。因此,答案是 A。

  6.以下脚本输出什么?

  $a = 10;

  $b = 20;

  $c = 4;

  $d = 8;

  $e = 1.0;

  $f = $c + $d * 2;

  $g = $f % 20;

  $h = $b - $a + $c + 2;

  $i = $h << $c;

  $j = $i * $e;

  print $j;

  ?>

  A.128

  B.42

  C.242.0

  D.256

  E.342

  6. %运算符表示取模,它返回两个操作数相除的余数。<<是左移运算符,相当于乘以 2

  的 N 次方。最后的答案乘以了一个浮点数,改变了它的数据类型。但是,由于小数

  后是零,因此输出的结果不包含小数部分。答案是 256(D)。

  7.如何给变量$a,$b 和$c 赋值才能使以下脚本显示字符串"Hello, World!"?

  $string = "Hello, World!";

  $a = ?;

  3

  $b = ?;

  $c = ?;

  if($a) {

  if($b && !$c) {

  echo "Goodbye Cruel World!";

  } else if(!$b && !$c) {

  echo "Nothing here";

  }

  }

  else {

  if(!$b) {

  if(!$a && (!$b && $c)) {

  echo "Hello, World!";

  } else {

  echo "Goodbye World!";

  }

  } else {

  echo "Not quite.";

  }

  }

  ?>

  A.False, True, False

  B.True, True, False

  C.False, True, True

  D.False, False, True

  E.True, True, True

  7. 根据条件式的逻辑,要想得到 Hello, World!字符串,必须要在第一个 if 结构中满足 else

  的条件。因此$a 必须为 False,然后$b 也必须为 False。最内层的条件语句的实现要求

  先前的两个变量($a 和$b)是 False,而$c 必须是 True(答案是 D)。

  8.以下脚本输出什么?

  $array = '0123456789ABCDEFG';

  $s = '';

  for ($i = 1; $i < 50; $i++) {

  $s .= $array[rand(0,strlen ($array) - 1)];

  }

  echo $s;

  ?>

  A.50 个随机字符组成的字符串

  B.49 个相同字符组成的字符串,因为没有初始化随机数生成器

  C.49 个随机字符组成的字符串

  D.什么都没有,因为$array 不是数组

  4

  E.49 个字母'G'组成的字符串

  8. 正确答案是 C。从 PHP4.2.0 开始,除非已经给定了一个伪随机整数列,否则不再需要

  用 srand()函数初始化随机数生成器。此外,即使随机数生成器没有被事先播种,脚本

  仍然会生成 49 个伪随机字符。尽管$array 变量是字符串,但可以用访问数组的方式进

  行访问——使用数字索引访问某个位置上的字符。最后,for 循环将从 1 开始执行到 50,

  也就是执行了 49 次

  9.哪种语句结构用来表现以下条件判断最合适?

  if($a == 'a') {

  somefunction();

  } else if ($a == 'b') {

  anotherfunction();

  } else if ($a == 'c') {

  dosomething();

  } else {

  donothing();

  }

  ?>

  A.没有 default 的 switch 语句

  B.一个递归函数

  C.while 语句

  D.无法用别的形式表现该逻辑

  E.有 default 的 switch 语句

  9. 用一系列的 if…else 语句来检查一个条件的代码块,最适合用 switch 语句来替代。

  switch($a) {

  case 'a':

  somefunction();

  break;

  case 'b':

  10

  anotherfunction();

  break;

  case 'c':

  dosomething();

  break;

  default:

  donothing();

  }

  ?>

  因为 if 语句中有一个捕捉所有其他条件的 else,对应的,switch 代码块需要一个 default。

  正确答案是 E。

  10.要修改每个元素的值,如何遍历$myarray 数组最合适?

  $myarray = array ("My String","Another String","Hi, Mom!");

  ?>

  A.用 for 循环

  B.用 foreach 循环

  C.用 while 循环

  D.用 do…while 循环

  E.办不到!

  10.通常情况下,foreach 语句是遍历数组的首选。但是,由于 foreach 语句是在数组的副

  本上进行操作,而我们需要给数组中每个元素重新赋值,所以在这里 foreach 就不适用

  了。尽管也可以用 while 循环和 do…while 循环,但由于数组是顺序索引的,最合适的

  语句还是 for 语句。因此答案是 A。

  $myarray = array ("My String", "Another String", "Hi, Mom!");

  for($i = 0; $i < count($myarray); $i++)

  {

  $myarray[$i] .= " ($i)";

  }

  ?>

  11.考虑如下代码片段:

  define("STOP_AT", 1024);

  $result = array();

  /* 在此处填入代码 */

  {

  5

  $result[] = $idx;

  }

  print_r($result);

  ?>

  标记处填入什么代码才能产生如下数组输出?

  Array

  {

  [0] => 1

  [1] => 2

  [2] => 4

  [3] => 8

  [4] => 16

  [5] => 32

  [6] => 64

  [7] => 128

  [8] => 256

  [9] => 512

  }

  A.foreach($result as $key => $val)

  B.while($idx *= 2)

  C.for($idx = 1; $idx < STOP_AT; $idx *= 2)

  D.for($idx *= 2; STOP_AT >= $idx; $idx = 0)

  E.while($idx < STOP_AT) do $idx *= 2

  11.由于题目只允许填写一行代码,唯一合适的是 for 循环,因此答案只能是 C 或者 D。

  要选出能生成正确结果的 for 循环,我们必须先复习一下 for 循环的构成要素。PHP 中,

  for 循环是这样声明的:

  for(<初始化>;<继续执行,直到>;<重复执行>)

  <初始化>在循环开始时执行一次,然后 for 循环开始执行大括号内的代码,直到<继续

  执行,直到>的值为 False。每完成一次循环,执行一次<重复执行>。因此,正确的代

  码块应该是:

  for ($idx = 1; $idx < STOP_AT; $idx *= 2)

  答案是 C。

  12.为用户定义函数 is_leap()选择一个合适的函数声明。is_leap 使用 2000 作为默认年份。

  /* 函数声明处 */

  {

  $is_leap = (!($year %4) && (($year % 100) ||

  !($year % 400)));

  return $is_leap;

  }

  var_dump(is_leap(1987)); /* Displays false */

  var_dump(is_leap()); /* Displays true */

  ?>

  A.function is_leap($year = 2000)

  B.is_leap($year default 2000)

  C.function is_leap($year default 2000)

  6

  D.function is_leap($year)

  E.function is_leap(2000 = $year)

  12.5 个选项中,只有两个是合法的 PHP 函数声明(A 和 D)。在这两个选项中,只有一

  个设置了参数的默认值——答案是 A。

  13.运行以下代码将显示什么值?假设代码运行时的 URL 是:testscript.php?c=25

  function process($c, $d = 25)

  {

  global $e;

  $retval = $c + $d - $_GET['c'] - $e;

  return $retval;

  }

  $e = 10;

  echo process(5);

  ?>

  A.25

  B.-5

  C.10

  D.5

  E.0

  13.本题考察 PHP 中变量作用域的相关知识。你必须明确 global 关键字是如何将变量引入

  本地域的,以及$_GET、$_POST、$_COOKIE、$_REQUEST 等超级全局变量的作用

  域。本题中,最终的数学表达式是 5+25-25-10,等于-5,答案是 B。

  14.考虑如下代码:

  function myfunction($a, $b = true)

  {

  if($a && !$b) {

  echo "Hello, World! ";

  }

  }

  $s = array(0 => "my",

  1 => "call",

  2 => '$function',

  3 => ' ',

  4 => "function",

  5 => '$a',

  6 => '$b',

  7 => 'a',

  8 => 'b',

  9 => ");

  $a = true;

  7

  $b = false;

  /* Group A */

  $name = $s[?].$s[?].$s[?].$s[?].$s[?].$s[?];

  /* Group B */

  $name(${$s[?]}, ${$s[?]});

  ?>

  脚本中的每个问号(?)代表$s 数组的一个数字索引。要想代码执行时显示 Hello, World!字符

  串,该如何选择数字索引?

  A.Group A: 4,3,0,4,9,9 Group B: 7,8

  B.Group A: 1,3,0,4,9,9 Group B: 7,6

  C.Group A: 1,3,2,3,0,4 Group B: 5,8

  D.Group A: 0,4,9,9,9,9 Group B: 7,8

  E.Group A: 4,3,0,4,9,9 Group B: 7,8

  14.函数能被以一个包含着函数名的变量后面加上括号(以及必要的参数)的形式动态

  调用。对于Group A来说,合适的索引组合是0,4,9,9,9,9,产生字符串myfunction。

  另一方面,参数将使用${}结构的可变变量。对Group B来说,合适的索引应该是7

  和8,等于${'a'}$和{'b'}——即$a和$b。因此答案是D。

  15.运行时(run-time)包含一个 PHP 脚本使用______,而编译时(compile-time)包含一

  个 PHP 脚本使用______。

  A.include_once, include

  B.require, include

  C.require_once, include

  D.include, require

  E.以上皆可

  15.在较新版本的 PHP 中,require(或 requier_once())和 include()(或 include_once())只有

  一个区别——如果包含的文件不存在,前者将产生一个致命错误,同时终止脚本的执

  行;而后者只会产生一个警告。因此答案 E 正确。

  16.什么情况下声明函数时不能给参数赋默认值?

  A.当参数是布尔值时

  B.当函数是类中的成员时

  C.当参数是通过引用传递时

  D.当函数只有一个参数时

  E.永远不会

  16.当参数被声明为通过引用传递时,你不能给它赋默认值,此时解释器期望获得一个能

  在函数内部进行修改的变量。答案是 C。

  17.______操作符在两个操作数中有一个(不是全部)为 True 时返回 True。

  答案:____________

  17.正确答案是逻辑异或(xor)运算符。

  18.全等运算符===如何比较两个值?

  A.把它们转换成相同的数据类型再比较转换后的值

  B.只在两者的数据类型和值都相同时才返回 True

  8

  C.如果两个值是字符串,则进行词汇比较

  D.基于 strcmp 函数进行比较

  E.把两个值都转换成字符串再比较

  18.全等运算符比较两个操作数的数据类型和值,两者中有一个不同,都会返回 False。因

  此答案是 B。

  19.以下哪个选项是把整型变量$a 的值乘以 4?(双选)

  A.$a *= pow (2, 2);

  B.$a >>= 2;

  C.$a <<= 2;

  D.$a += $a + $a;

  E.一个都不对

  19.答案是 A 和 C。A 选项中,pow 函数计算 2 的平方,答案是 4。C 选项中,左移运算

  符将$a 的值左移两位,相当于乘以 4。

  20.一段脚本如何才算彻底终止?

  A.当调用 exit()时

  B.当执行到文件结尾时

  C.当 PHP 崩溃时

  D.当 Apache 由于系统故障而终止时

  20.答案是 A。一段脚本并不会在执行到文件末尾时终止,所以当前文件才能被其他脚本

  包含。至于 PHP 和 Apache 崩溃,这两个说法就太恶搞了。

>>>点击查看更多笔试内容

分享

热门关注

描写父爱如山的名人名言

描写父爱如山的名言

描写夏天的温柔句子80条

描写夏天的句子80条

适合发朋友圈祝福新人的话

发朋友圈祝福新人的话

端午微信朋友圈文案2021

端午微信朋友圈文案

简单员工试用期转正申请书

简单员工转正申请书

普通话考试试题有哪些

普通话考试题型

一年级上册语文期中考试试卷

语文期中考试试卷

四年级上册语文期中考试试卷及答案

期中考试试卷及答案

普通话考试题型有哪些

普通话考试题型

三年级上册数学期中考试题(含答案)

数学期中考试题