头条 php面试题,PHP面试题

1.

echo -10%3;

?>

答案:-1。

考查:优先级。

因为-的优先级比%求余的优先级低,也就是-(10%3)。

2.

print (int)pow(2,32);

答案:0

3.

//file1.php

$a = '123';

?>

//file2.php

echo include('file1.php');

?>

答案:1.

考查:返回值。

因include()也是一个函数,有返回值。在成功时返回1,失败时返回错误信息。如果被包含的文件有return,则inculde()成功时返回该文件的返回值。

4.

$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.

$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.

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.

$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.

echo intval((0.1+0.7)*10);

?>

答案:7。

考查:浮点数的概念。

因0.1+0.7=0.8 0.810=8 所以转换成整数后还是8?错!因为0.1+0.7=0.8是浮点数,0.810在数学计算中是正整数8,可是在计算机中它仍然是浮点数8,什么叫浮点数8?每一个看起来像整数的浮点数,其实都不是整数,比如这个8,它其实只是7.9999循环,无限接近于8,转换成整数会舍弃小数部分,就是7喽。

9.

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。

考查:优先级。

因“."的优先级高于三元运算符"?:"。所以程序其实报错了。会说

10.

$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。

考查:优先级,基础概念,++。

因“="的优先级低于“||”,所以先逻辑判断再赋值。也就是(arr的索引2不存在。¨K22K¨G9G答案:D。考查:优先级,基础概念,++。因“="的优先级低于“∣∣”,所以先逻辑判断再赋值。也就是(a = (5 || b=7))。所以,最后其实给a赋值了,a等于1.

11.

$x = 2;

echo $x == 2 ? '我' : $x == 1 ? '你' : '它';

?>

输出的结果是()

A、我

B、你

C、它

D、syntax error

答案:B。

考查:优先级。

因“=="的优先级高于“?:”。我已经不想说为什么了,整理一下这种东西,我感觉要疯了,除了笔试题外估计也不会遇到了吧。

本文仅代表作者个人观点,不代表SEO研究协会网官方发声,对观点有疑义请先联系作者本人进行修改,若内容非法请联系平台管理员,邮箱cxb5918@163.com。更多相关资讯,请到SEO研究协会网www.seoxiehui.cn学习互联网营销技术请到巨推学院www.jutuiedu.com。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值