您的位置:

新浪php笔试题,php最新面试题及答案

本文目录一览:

一道PHP题,请问谁能给解释一下?

?

function pathconvert($cur,$absp)//当前文件,目标路径

{

$cur=str_replace('\\','/',$cur);

$absp=str_replace('\\','/',$absp);

$sabsp=explode('/',$absp);

$scur=explode('/',$cur);

$la=count($sabsp)-1;

$lc=count($scur)-1;

$l=max($la,$lb);

for($i=0;$i=$l;$i++){

if($sabsp[$i]!=$scur[$i])

break;

}

$k=$i-1;

$path="";

for($i=1;$i=($lc-$k-1);$i++)

$path.="../";

for($i=$k+1;$i=($la-1);$i++)

$path.=$sabsp[$i]."/";

$path.=$sabsp[$la];

return$path;

}

$path=pathconvert("/home/web/test/a.php","/home/data/d.png");

echo $path;

?

面试高级php工程师,一般会问到哪些问题

高并发大访问量的mysql优化,服务器优化?

字段建索引、主从数据库、读写分离、表分区、负载均衡。

linux的慢查询日志会记录mysql的超时查询sql语句,定期察看进行优化。

2.大访问量下秒杀模块程序怎么设计,如果使用mysql会有多卖的情况,就是订单超过库存。

将订单数据缓存到内存,如果用数据库直接崩掉,毫无悬念的。

3.缓存的使用

能用静态的用静态,不能静态的用内存缓存,例如memcache、redis,不能缓存的用数据库。

4.session可不可以跨域?怎么跨域?

将PHP session机制重写(PHP提供),将session存储在memcache或者数据库就可以跨域了。

另外session能以三种方式存储,文件、数据库、缓存。

5.了不了解非关系型数据库?

mongodb

6.会不会写shell脚本以及linux的操作

还会问一下时下流行的东西,比如做没做过微信开发,例如微信支付开发、APP移动开发,等等问题。

问的核心东西都是围绕这些转的,如果有笔试会让你写sql,php功能(例如冒泡排序等排序),还有逻辑题。

我当初面试了很多,这是一个我的面试经验的总结,纯手打忘采纳。

用PHP做毕业设计,求三个题目

CMS 各种管理系统都可以

如果想进百度这种公司 还是好好看看C语言

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.