面试总结

1.传值,传址,传引用的区别?

解:传值是普通的参数传递,传址是指变量指向内存中的地址,传引用是指对象的传递  如:把对象A赋给对象B,  $B = $A。

2.ajax跨域?

解:JSONP, JSONP(JSON with Padding)是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式)。于同源策略的限制,XmlHttpRequest只允许请求当前源(域名、协议、端口)的资源,为了实现跨域请求,可以通过script标签实现跨域请求,然后在服务端输出JSON数据并执行回调函数,从而解决了跨域的数据请求。

3.怎么设置session的过期时间?

修改php.ini的配置文件  session.gc_maxlifetime = 1440

4.把字符转成ASCII码的函数是什么?怎么转回来?

解:ord(),chr()

5.tcp和udp的区别?

解:tcp是点对点的,udp是广播式的。

6.进程和线程的区别?php支持多线程还是多进程?

解:线程存在于进程中,进程关闭,线程随之关闭。线程共享内存空间,进程独立内存空间。php支持多进程。

7.json用法?

解:服务端传给客户端json数据,需要json_encode()数组,然后在客户端使用eval()解析

客户端传给服务端json数据,直接在服务端用json_decode($arr,true)解析成数组

8.http.conf和.htaccess的区别?

解:.htaccess   只需要加载就行,而http.conf 配置rewrite需要重启apache,httpd.conf可以决定.htaccess是否生效。

9.mysql优化策略

解:a.尽量使用mysql的查询缓存。 b.为搜索字段添加索引。 c.避免select *。 d.使用explain你的查询语句。e.选择正确的存储引擎。f.小心永久链接。

10.如果我要用like查询一个user表中的name做模糊查询,如何使用上索引?

解:name like "$str%",like后边的百分号可以使用索引。

11.快速排序

<?php

    function quickSort($arr)
    {
        $len = count($arr);
        if ($len <= 1) return $arr;
        $key = $arr[0];
        $left_arr = array();
        $right_arr = array();
        for($i=1; $i<$len; $i++)
        {
            if ($arr[$i] <= $key)
            {
                $left_arr[] = $arr[$i];
            } else {
                $right_arr[] = $arr[$i];
            }
        }
        $left_arr = quickSort($left_arr);
        $right_arr = quickSort($right_arr);
        return array_merge($left_arr, array($key), $right_arr);
    }

?>

 12. 字符串gbk UTF8在http请求时的是如何处理的?

      0~9 a~z A~Z这些字符是不会被编码的,中文都统一转成16进制数,gbk编码下中文转成2个16进制数,utf8编码下中文转成3个16进制数

 13. 字符串的翻转特殊处理

function strrev($str)
{
   $len = strlen($str);  
   for ($i = $len;$i >= 0; $i--)
   {
       $newStr .= $str{$i};
   }
   return $newStr;
}

14. http 请求中cookie session?  session 如何在多台负载中处理?

 cookie 存在客户端,session存在服务器,sessionID存在cookie中

原文地址:https://www.cnblogs.com/zhaozhilu/p/2960885.html