LaneBlog

蝼蚁虽小,也有梦想

PHP Socket服务 | PHP微信开发框架 | 开源博客

PHP面试题,PHP笔试题(一)

Clicks: 7685 Date: 2014-03-07 15:00:15 Power By 李轩Lane

    题目一:
<?php
echo -10%3;
?>
答案:-1。 考查:优先级。 因为-的优先级比%求余的优先级低,也就是-(10%3)。 题目二:
print (int)pow(2,32);
答案:0 题目三:
//file1.php
<?php
$a = '123';
?>
//file2.php
<?php
echo include('file1.php');
?>
答案:1. 考查:返回值。 因include()也是一个函数,有返回值。在成功时返回1,失败时返回错误信息。如果被包含的文件有return,则inculde()成功时返回该文件的返回值。 题目四:
<?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了,前者先返回,后者先++再返回。 题目五:
<?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是若类型语言,但是人家也有类型的好吗。 题目六:
<?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? 题目七:
<?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了。其中注意的是&,如果有&则是对原变量操作,如果没有,则是先生成一个新变量,然后给这个变量复制,最后操作的是这个新变量。 题目八:
<?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喽。 题目九:
<?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不存在。 题目十:
<?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. 题目十一:
<?php
$x = 2;
echo $x == 2 ? '我' : $x == 1 ? '你' : '它';
?>
输出的结果是()
A、我
B、你
C、它
D、syntax error
答案:B。 考查:优先级。 因“=="的优先级高于“?:”。我已经不想说为什么了,整理一下这种东西,我感觉要疯了,除了笔试题外估计也不会遇到了吧。

Reply: Zhang On 2014-03-08 13:11:09

这也太闹心了。。平时开发完全不会这么写。

回复

Reply: Kanye On 2014-04-25 10:00:40

第二题我验证的结果是-2147483648,改成32次方才是0呀!

回复

Reply: Lane On 2014-04-25 23:40:14

Kanye.抱歉。打错了。是32次方。多谢。

回复

Reply: inoujokoli On 2020-01-09 15:37:56

http://mewkid.net/who-is-xandra/ - Amoxicillin <a href="http://mewkid.net/who-is-xandra/">Amoxicillin</a> wmp.ilgv.lanecn.com.hks.so http://mewkid.net/who-is-xandra/

回复

Reply: oasowaliwni On 2020-01-09 23:12:44

http://mewkid.net/who-is-xandra/ - Amoxicillin <a href="http://mewkid.net/who-is-xandra/">Buy Amoxicillin Online</a> prk.hybn.lanecn.com.fjh.or http://mewkid.net/who-is-xandra/

回复

Reply: uksowugipubdi On 2020-01-09 23:26:02

http://mewkid.net/who-is-xandra/ - Buy Amoxicillin <a href="http://mewkid.net/who-is-xandra/">Amoxil Causes Gallstones</a> xfk.jkws.lanecn.com.bov.jg http://mewkid.net/who-is-xandra/

回复

Reply: ogujeci On 2020-01-09 23:30:07

http://mewkid.net/who-is-xandra/ - Buy Amoxil <a href="http://mewkid.net/who-is-xandra/">Amoxicillin 500mg Capsules</a> dgz.utns.lanecn.com.nms.xt http://mewkid.net/who-is-xandra/

回复

Reply: edxubsimouce On 2020-03-24 18:59:45

http://mewkid.net/when-is-xaxlop/ - Amoxicillin 500mg <a href="http://mewkid.net/when-is-xaxlop/">18</a> bkd.mmbp.lanecn.com.dzf.wj http://mewkid.net/when-is-xaxlop/

回复

Add Comment
©2014 www.lanecn.com , All rights reserved. Power By Li Xuan.  京ICP备14005030号