PHP面试题,PHP笔试题

题目一:

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

考查:优先级。

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

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2016-02-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能LeadAI

Python生成器

通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅...

942
来自专栏康怀帅的专栏

Redis string 类型

可以是字符串、整数或浮点,统称为元素。对字符串操作,对整数类型加减。 追加 set key value append key 1 get key 赋值 se...

2656
来自专栏快乐八哥

Javascript中数组的sort()和reverse()方法

Javascript开发中,数组是用到最多一个内容。同时数组的方法不多,下面介绍在数组排序中用到的2个常用方法。sort()方法和reverve()方法。 so...

1866
来自专栏我的博客

原生JavaScript第二天

1.typeof操作符 typeof操作符用来检测变量的数据类型 2.数据类型 2.1Undefined类型,只有一个值undefined(在使用var声明变量...

2694
来自专栏机器学习算法与Python学习

python: sort, sorted, reverse

python语言中的列表排序方法有三个:reverse反转/倒序排序、sort正序排序、sorted可以获取排序后的列表。在更高级列表排序中,后两中方法还可以加...

3428
来自专栏Python爱好者

Java基础笔记05

1408
来自专栏分布式系统和大数据处理

ES6中的Generator函数

之前在React项目中,遇到异步请求,都是通过redux-thunk来处理,但使用这种方式,action就变得不那么纯净了。当前新的趋势是使用redux-sag...

793
来自专栏java学习

Java基础第五天学习笔记

05.01_Java语言基础(数组概述和定义格式说明)(了解) * A:为什么要有数组(容器) * 为了存储同种数据类型的多个值 * B:数组概念 * 数组...

2807
来自专栏前端知识分享

第191天:js---Array常用属性和方法总结

762
来自专栏程序员的SOD蜜

结构变量作为方法的参数调用,在方法内部使用的“坑”你遇到过吗?

很久没有写博了,今天一个同学在问结构变量的问题,问结构到底是传递值还是传递引用。查过MSDN的都知道,结构默认是传递值的,因此在方法内部,结构的值会被复制一份。...

23210

扫码关注云+社区