PHP工作的面试情况及问题集

Standard

刚才在网上看到好多PHP的面试题目.说实话,我反感一切笔试:) 但没办法,有些公司因为一下子叫来面试的人太多而无法在第一轮里和你面谈.

先说一下我及周围朋友外面遇到的PHP工资情况(10.11上海).
20人左右小公司: 1年经验:3K >2年经验:5-7K
200人左右中型公司: 2年左右经验:5-8K 资深:8-12K
200人以上的公司: 2年左右经验:7-8K 资深:13K左右
外资公司: 口语过关2年工作经验:8K-13K 资深:看运气喽

以我自己的面试经历来讲大致是下面三种方式:
一、20%的公司第一轮是填表格做笔试题,做完之后多半会有人出来和你面谈(如果你觉得笔试没有全对并且来和你谈的人是管人事或行政的话,那就没戏了)
二、40%公司以基层技术人员面谈或电话提问来初步判断(只需回答思路或函数名称,不用具体写出来),然后再安排上一级主管面试.
三、40%是直接由技术主管来面试,一般就是问你之前公司所做东西的情况以及经验心得,再问问你为什么要走之类的.期间还会谈谈网站抗压、服务器管理和数据库优化等问题,有时还会谈谈你学习生活什么的.反正这一种聊得时间最长,也比较不会让人感到无聊.

我比较喜欢后两种面试方式.
第二种方式对开发人员来讲,和技术人员直接面谈比较容易把问题讲清楚.
第三种方式相对来讲最直接,率效也最高,主管决定要你之后也就是和公司谈价格了.所谓经验我认为主要是面对客户需求时能有快速的反应,能够合理提出自己看法和建议并在大脑中大致勾勒出产品轮廓.这方面还是直接和技术主管谈来得清楚直接.

下面收了一些面试题,另外还有一份关于Yahoo面试PHP人员所问问题的PDF文档.下载

—http://yemaosheng.com 收集中—
如何过滤输入html数据,并且能够支持部分html,如:”<p><b><font color=blue><br>”
答:echo strip_tags($text, ‘<b><font><br><p>’);
———————————–
优化SQL: select * from t where id in (1,2,3) order by s desc;
答:
不要用select * 就算有几十个字段要读也一个一个写出来.
用exists代替in,exists的效率要高很多,测试过有时速度可以相差5倍.
s字段建索引.
———————————–
写一段Mysql连接:
答:
mysql_connect(“mysql_host”, “mysql_user”, “mysql_password”);
mysql_select_db(“my_database”);
$query = “SELECT * FROM my_table”;
$result = mysql_query($query);
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo $row[0];
}
———————————–
写出PHP的变量类型:
答:
标量类型:
boolean(布尔型)
integer(整型)
float(浮点型,也作“double”)
string(字符串)
复合类型:
array(数组)
object(对象)
特殊类型:
resource(资源)
NULL
———————————–
文件上传进度条怎么做:
答:
1.APC扩展模块
2.PHP+Flash
3.第三方类库
———————————–
echo(),print(),print_r(),var_dump()的区别:
答:
print和echo功能基本相同,不同的是print有返回值
print_r和var_dump是递归打印,用于输出数组对象,不同的是var_dump可以给出数组中值的类型
———————————–
实现中文字串截取无乱码的方法:
答:
装扩展库,用mb_string()
———————————–
用PHP打印出前一天的时间格式是2006-5-10 22:21:21
答:
echo date(‘Y-m-d H:i:s’, strtotime(‘-1 day’));
———————————–
实现字符串翻转:
答:
php自带strrev函数
如不准用PHP内置的就如下写
function my_strrev($str)
{
$len=strlen($str);
$newstr = ”;
for($i=$len;$i>=0;$i–)
{
$newstr .= $str{$i};
}
return $newstr;
}
———————————–
三元运算:
The expression (expr1) ? (expr2) : (expr3) evaluates to expr2 if expr1 evaluates to TRUE, and expr3 if expr1 evaluates to FALSE.
———————————–
考一些运算符:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
echo "<h3>Postincrement</h3>";
$a = 5;
echo "Should be 5: " . $a++ . "\n";
echo "Should be 6: " . $a . "\n";
 
echo "<h3>Preincrement</h3>";
$a = 5;
echo "Should be 6: " . ++$a . "\n";
echo "Should be 6: " . $a . "\n";
 
echo "<h3>Postdecrement</h3>";
$a = 5;
echo "Should be 5: " . $a-- . "\n";
echo "Should be 4: " . $a . "\n";
 
echo "<h3>Predecrement</h3>";
$a = 5;
echo "Should be 4: " . --$a . "\n";
echo "Should be 4: " . $a . "\n";
 
// foo() will never get called as those operators are short-circuit
$a = (false && foo());
$b = (true  || foo());
$c = (false and foo());
$d = (true  or  foo());
 
// "||" has a greater precedence than "or"
$e = false || true; // $e will be assigned to (false || true) which is true
$f = false or true; // $f will be assigned to false
var_dump($e, $f);
 
// "&&" has a greater precedence than "and"
$g = true && false; // $g will be assigned to (true && false) which is false
$h = true and false; // $h will be assigned to true
var_dump($g, $h);
/*
The above example will output something similar to:
bool(true)
bool(false)
bool(false)
bool(true)
*/

2 thoughts on “PHP工作的面试情况及问题集

    • 那建议他跳槽,人挪活,想要安逸得等老板加工资是不可能的,哈.
      我接触了解下来周围做PHP朋友的工资低的3K,平均6K,高的1W多.
      ASP.NET我听个朋友说他是5K,但我想那肯定不算高的.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.