刚才在网上看到好多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) */ |
工资,没这么高吧,,我同学搞ASP.NET 快3年了,也才2K多而已。
那建议他跳槽,人挪活,想要安逸得等老板加工资是不可能的,哈.
我接触了解下来周围做PHP朋友的工资低的3K,平均6K,高的1W多.
ASP.NET我听个朋友说他是5K,但我想那肯定不算高的.