基础理论
1、什么是面向对象?主要特征是什么?
面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰;主要特征:封装、继承、多态。
2、SESSION与COOKIE的区别是什么,请从协议,产生的原因与作用说明?
1、http无状态协议
2、SESSION存储在服务端,COOKIE保存在客户端;Session比较安全,cookie可以修改不安全;Session依赖于Cookie进行传递
3、HTTP状态中错误码含义?
302:临时转移成功,请求的内容已转移到新位置;403:禁止访问;500:服务器内部错误 401:代表未授权
4、Linux下建立压缩包,解压缩包的命令
1、Tar.gz:
打包:`tar czf file.tar.gz file.txt`
解压:`tar xzf file.tar.gz`
2、Zip:-r 对目录
打包:`zip file1.zip file1.txt`
解压:`unzip file1.zip`
5、MyISAM 和 InnoDB 的基本区别?索引结构如何实现?
MyISAM类型不支持事务,表锁,易产生碎片,要经常优化,读写速度较快,而InnoDB类型支持事务,行锁,有崩溃恢复能力,读写速度比MyISAM慢。
创建索引:alert table tablename add index (字段名
)
6、isset() 和 empty() 区别
isset判断变量是否存在,可以传入多个变量,若其中一个变量不存在则返回假,empty判断变量是否为空
代码理论
1、冒泡排序法
function mysor($arr) {
for($i = 0; $i < count($arr); $i++) {
for($j = 0; $j < count($arr)-1-$i; $j ++){
if($arr[$j] > $arr[$j+1]){
$temp = $arr[$j];
$arr[$j] = $arr[$j + 1];
$arr[$j + 1] = $temp;
}
}
}
return $arr;
}
$arr = array(3,2,1);
2、快速排序
原理:快速排序使用分治策略来把待排序数据序列分为两个子序列,具体步骤为:
(1)从数列中挑出一个元素,称该元素为“基准”。
(2)扫描一遍数列,将所有比“基准”小的元素排在基准前面,所有比“基准”大的元素排在基准后面。
(3)通过递归,将各子序列划分为更小的序列,直到把小于基准值元素的子数列和大于基准值元素的子数列排序。
function QuickSort($arr){
$num = count($arr);
$l=$r=0;
for($i=1;$i<$num;$i++){
if($arr[$i] < $arr[0]){
$left[] = $arr[$i];
$l++;
}else{
$right[] = $arr[$i];
$r++;
}
}
if($l > 1){
$left = QuickSort($left);
}
$new_arr = $left;
$new_arr[] = $arr[0];
if($r > 1){
$right = QuickSort($right);
}
for($i=0;$i<$r;$i++){
$new_arr[] = $right[$i];
}
return $new_arr;
}