PHP开发工程师面试问题集锦

  PHP开发工程师面试题分享

  1. 下列哪一句不能将'john'添加到数组$user? 答:BD

  A. $user[] = 'john';

  B. array_add($user, 'john');

  C. array_push($user, 'john');

  D. $user ||= 'john';

  2. 比较sort(), asort(), ksort()三个函数的用法以及使用环境。

  答:sort -- 将数组的值由a-z重排,并自动替换索引从0...结束

  asort --- 此函数将数组的元素由a-z重新排列,且保持原先索引值和元素的对应关系,这个函数主要是用于

  需要将数组的元素重新排列。这个函数比较常用。

  ksort --- 此函数将数组依照索引值由a-z重新排列

  例子:

  对array('a'=>111, '9'=>"orange", 6=>2, "apple");排序。

  sort则返回: Array ( [0] => apple [1] => orange [2] => 2 [3] => 111 )值由a-z重排,索引也变了。

  asort则返回:Array ( [10] => apple [9] => orange [6] => 2 [a] => 111 )值由a-z重排,保持索引以应

  ksort则返回: Array ( [a] => 111 [6] => 2 [9] => orange [10] => apple )索引值由a-z重新排列,保持索

  引以应

  3. 以下代码输出什么内容, 为何。

  $num = 10;

  function foo(){

  $num = $num * 10;

  }

  foo();

  echo $num;

  答:

  结果为10.因为foo()中的$num是访问不到函数外的变量的。要想访问加上global $num;结果就成100了。

  4. 引用和普通变量的区别。

  答:普通变量是开辟了一块新的存储空间,引用是直接指向其他的存储空间。

  如:

  $num = 10;

  function foo($num){

  $num = $num * 10;

  }

  foo($num);

  echo $num;

  调foo($num);函数时以变量传递,则返回10;

  如果改成引用传递,返回100;

  $num = 10;

  function foo(&$num){

  $num = $num * 10;

  }

  foo($num);

  echo $num;

  5. 加载类库的方法。

  答:

  function __autoload($class){

  require_once("./lib/".$class.'.php');

  }

  6. foo()和@foo()的区别。

  答:加上@符号会屏蔽报错提示。

  如下:

  $num = 10;

  function foo(&$num){

  $num = $num / 0;

  }

  foo($num);

  echo $num;

  大家都知道除数不能为0。如果加上@符号后就没有Warning: Division by zero

  

本文已影响6827
上一篇:PHP高级工程师面试问题推荐 下一篇:电视编导艺术专业面试问题

相关文章推荐

|||||