php面试题带答案,php程序员笔试题与答案(一)
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 < STOP_AT; $idx *= 2)
D.for($idx *= 2; STOP_AT >= $idx; $idx = 0)
E.while($idx < STOP_AT) do $idx *= 2
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 由于系统故障而终止时
答案在下一页:
PHP之友评论