php 笔试面试 总结

一次小小的笔试面试经历,虽然是一些简单的问题,但是自己在这儿总结一下,也查一些资料,得出一些较好的答案,也能帮助自己成长。

1.自己熟悉的http状态码及其意义

   其实这个题答案随处可见。这儿也还是记录一下我们常见的http状态码

   200:请求返回的状态正常。

   301:url永久性重定向。

   302:url暂时性重定向。

   400:错误请求。

   401:未授权访问。

   403:禁止访问。

   404:未找到

   500:服务器错误。

   502:bad gateway.错误网关。

   504:Gateway Timeout,网关超时。

   想了解详细的http状态码内容,请参考http状态码

2.include与require的区别以及include_once、require_once

  require一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误 
  include一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误。

为了防止出现重复引入文件,选择使用include_once()、require_once()

3.php 垃圾回收机制

php 5.3之前使用的垃圾回收机制是单纯的“引用计数”,也就是每个内存对象都分配一个计数器,当内存对象被变量引用时,计数器 1;当变量引用撤掉后,计数器-1;当计数器=0时,表明内存对象没有被使用,该内存对象则进行销毁,垃圾回收完成。

“引用计数”存在问题,就是当两个或多个对象互相引用形成环状后,内存对象的计数器则不会消减为0;这时候,这一组内存对象已经没用了,但是不能回收,从而导致内存泄露;

php5.3开始,使用了新的垃圾回收机制,在引用计数基础上,实现了一种复杂的算法,来检测内存对象中引用环的存在,以避免内存泄露。

详细可参考 PHP垃圾回收机制 ,了解详细解释。

4.php 常用魔术方法与魔术常量

 1). 魔术方法:

常用魔术方法

5.传值与传引用

   传值:是把实参的值赋值给行参 ,那么对行参的修改,不会影响实参的值 
   传引用 :真正的以地址的方式传递参数传递以后,行参和实参都是同一个对象,只是他们名字不同而已对行参的修改将影响实参的值 

  优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。

      按引用传递则不需要复制值,对于性能提高很有好处。

6.斐波那契数列递归

 1 <?php
 2 function test($n){
 3     if($n>2){
 4         $array[$n-1] = test($n-1);
 5         $array[$n-2] = test($n-2);
 6         $array[$n] = $array[$n-1] + $array[$n-2];
 7         return $array[$n];
 8     }elseif ($n==2) {
 9         return 1;
10     }elseif ($n==1) {
11         return 1;
12     }
13 }
原文地址:https://www.cnblogs.com/lingshao/p/5572652.html