联系电话:0411-66373325
联系地址:大连市沙河口区富民广场
公司邮箱:2058793689@qq.com
备案信息:Copyright © 2016-2025,www.my249.com,All rights reserved
|
249建站之家:PHP笔试题题目一 <?php echo -10%3; ?> 答案:-1。 考查:优先级。 因为-的优先级比%求余的优先级低, 也就是-(10%3)。 2 题目二: print (int)pow(2,32); 答案:0 3 题目三: //file1.php <?php $a = '123'; ?> //file2.php <?php echo include('file1.php'); ?> 答案:1. 考查:返回值。 因include()也是一个函数,有返回值。 在成功时返回1,失败时返回错误信息。 如果被包含的文件有return,则inculde() 成功时返回该文件的返回值。 4 题目四: <?php $count = 5; function get_count() { static $count = 0; return $count++; } ++$count; get_count(); echo get_count(); ?> 答案:1. 考查:static和++。 因static $count,所以只在第一次 调用get_count的时候对$count赋值 为0,第二次再进来这个函数,则不会 第二次赋值。其次就是return $count++ 和return ++$count了,前者先返回, 后者先++再返回。 5 题目五: <?php $arr= array(0 =>1,'aa' =>2,3,4); foreach($arr as $key => $val){ print($key == 'aa' ? 5 : $val); } ?> 答案:5534. 考查:类型转换。 因遍历数组第一次的时候,$key和aa的比 较实际就是0和aa的比较,一个是int一个 是string,这个时候会转换类型,将字符 串转换为数字再与数字比较。所以0=='aa' 就是0==0,所以为true,也就是输出5。 虽然PHP是若类型语言,但是人家也有类 型的好吗。 6 题目六: <?php echo count (false); $a = count ("567") + count(null) + count(false); echo $a; ?> 答案:2. 考查:count的用法。 因count()的官方解释“If the parameter is not an array or not an object with implemented Countable interface, 1 will be returned.”. 意思是说,如果不是数组或者对象的其他 类型,返回1.那么这个值应该就是1+0+1 了(boolen人家也是一个类型,虽然是 讨厌的false)。NULL的意思是没有值, 难道在计数函数中还能有1? 7 题目七: <?php $arr = array(1,2,3); foreach($arr as &$val) { $val += $val % 2 ? $val++ : $val--; } $val = 0; print(join('',$arr)); ?> 答案:330。 考查:++和&。 因foreach结束后的数组应该是array(3,3,7);最后给第三个元素赋值为0,所以就是330了。其中注意的是&,如果有&则是对原变量操作,如果没有,则是先生成一个新变量,然后给这个变量复制,最后操作的是这个新变量。 8 题目八: <?php echo intval((0.1+0.7)*10); ?> 答案:7。 考查:浮点数的概念。 因0.1+0.7=0.8 0.8*10=8 所以转换 成整数后还是8?错!因为0.1+0.7=0.8是 浮点数,0.8*10在数学计算中是正整数8, 可是在计算机中它仍然是浮点数8,什么叫 浮点数8?每一个看起来像整数的浮点数, 其实都不是整数,比如这个8,它其实只是 7.9999循环,无限接近于8,转换成整数会 舍弃小数部分,就是7喽。 9 题目九: <?php ini_set('display_errors',0); $arr = array(1=>1,3=>3); $i = 2; $a = 'test' . isset($arr[$i]) ? $arr[$i] : $i; 请问$a的值是什么? A、test B、NULL C、2 D、test2 ?> 答案:B。 考查:优先级。 因“."的优先级高于三元运算符"?:"。所以程 序其实报错了。会说$arr的索引2不存在。 10 题目十: <?php $a = 3; $b = 5; if($a = 5 || $b = 7) { $a++; $b++; } echo $a . " " . $b; ?> A、6 8 B、6 6 C、2 6 D、1 6 E、4 6 答案:D。 考查:优先级,基础概念,++。 因“="的优先级低于“||”,所以先逻辑判断再赋值。 也就是($a = (5 || $b = 7))。所以,最后 其实给a赋值了,$a等于1. 11 题目十一: <?php $x = 2; echo $x == 2 ? '我' : $x == 1 ? '你' : '它'; ?> 输出的结果是() A、我 B、你 C、它 D、syntax error 答案:B。 考查:优先级。 因“=="的优先级高于“?:”。我已经不想说为什么了,整理一下这种东西,我感觉要疯了,除了笔试题外估计也不会遇到了吧。 |