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中