那些年遇到的坑人PHP面试题集合

1.下面代码的输出结果是:
  1. echo function_exists('print');

A. 空
B. true
C. false
D. FALSE

答案:A

解析:判断print函数是否存在,PHP官网明确说function_exists对于语言结构的判断,例如include_onceecho将会返回 FALSE 。类似的语言结构还有print,list,array,eval等。因此echo false 会打印空。

2.下面代码的输出结果是:
  1. echo 1 + 2 + "3 + 4 + 5";

A. 0
B. 3
C. 6
D. ‘33 + 4 + 5’

答案:C

解析:PHP会将字符串3 + 4 + 5强制转换成整型3,因此输出6,如果在Javascript中上述结果就是D

3.用PHP获取前一天的时间并打印,格式如:2020-9-25 07:31:37
  1. echo date('Y-n-d H:i:s', strtotime('-1 day'));

注意:m与n的区别,m有前导零,n没有前导零。同理d有前导零,j没有前导零

4.下面代码的输出结果是:
  1. $a = 0;
  2. $b = 0;
  3. if($a = 3 || $b = 4) {
  4. $a++;
  5. $b++;
  6. }
  7. echo $a.'-'.$b;
5.下面代码的输出结果是:
  1. $a = 0;
  2. $b = 0;
  3. if($a = 3 | $b = 4) {
  4. $a++;
  5. $b++;
  6. }
  7. echo $a.'-'.$b;
6.下面代码的输出结果是:
  1. $data = ['a', 'b', 'c'];
  2. foreach($data as $key => $val) {
  3. $val = &$data[$key];
  4. echo '<pre>';
  5. print_r($data);
  6. }