热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php面试题带答案,php程序员笔试题与答案(一)

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

 php程序员招聘笔试题:

问题

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

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

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

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

B.嵌入式,Zend,HTML,XML

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

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

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


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

A.<% %>

B.//

C.

D./* */

E.


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

A.$_10

B.${“MyVar”}

C.&$something

D.$10_somethings

E.$aVaR


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

define(myvalue, "10");

$myarray[10] = "Dog";

$myarray[] = "Human";

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

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

print "The value is: ";

print $myarray[myvalue]."\n";

?>

2

A.The Value is: Dog

B.The Value is: Cat

C.The Value is: Human

D.The Value is: 10

E.Dog


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

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

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

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

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

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


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


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


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’组成的字符串


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 语句


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

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

?>

A.用 for 循环

B.用 foreach 循环

C.用 while 循环

D.用 do…while 循环

E.办不到!


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

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

E.while($idx


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)


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


14.考虑如下代码:

function myfunction($a, $b = true)

{

if($a && !$b) {

echo "Hello, World!\n";

}

}

$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


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

个 PHP 脚本使用______。

A.include_once, include

B.require, include

C.require_once, include

D.include, require

E.以上皆可


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

A.当参数是布尔值时

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

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

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

E.永远不会


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

答案:____________


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

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

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

8

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

D.基于 strcmp 函数进行比较

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


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

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

B.$a >>= 2;

C.$a <<= 2;

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

E.一个都不对

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

A.当调用 exit()时

B.当执行到文件结尾时

C.当 PHP 崩溃时

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


 答案在下一页:

#p#php面试题答案#e#

答案

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

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

如 XML。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

也就是执行了 49 次。

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.通常情况下,foreach 语句是遍历数组的首选。但是,由于 foreach 语句是在数组的副

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

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

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

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

for($i = 0; $i

{

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

}

?>

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

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

for 循环是这样声明的:

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

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

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

码块应该是:

for ($idx = 1; $idx

答案是 C。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

此答案是 B。

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

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

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

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


推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 有关phpfgetss()函数的文章推荐10篇
    有关phpfgetss()函数的文章推荐10篇:了解如何使用PHP的各种文件函数。查看诸如fopen、fclose和feof之类的基本文件函数;了解诸如fgets、fgetss和f ... [详细]
  • 导读:在编程的世界里,语言纷繁多样,而大部分真正广泛流行的语言并不是那些学术界的产物,而是在通过自由发挥设计出来的。和那些 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • Introduction(简介)Forbeingapowerfulobject-orientedprogramminglanguage,Cisuseda ... [详细]
  • php课程Json格式规范需要注意的小细节
    JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgramming ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
author-avatar
阿莱沃_132
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有