PHP面试题总结

PHP面试题总结

基础理论

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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值