2019.3.15 PHP面试题准备(酷骇游戏)

工作要求:

  • 协助完成后端服务器架构优化、模块测试
  • 熟悉thinkphp5.0(看tp5文档函数、PHP函数)
  • 熟悉Linux;熟悉MySQL及Redis相关技术(复习Linux mysql语句)
  • 对高并发、高可用架构有了解(??)

PHP函数篇

  • 处理数组:
    1、求组中最大数和最小数:max ( array $values ) /min ( array $values );
    2、从小到大排序数组/从大到小排序数组:sort(array $arr) / rsort(array $arr);
    3、出栈 / 进栈 : array_pop(array $arr);(删除并返回最后一个数组) ; array_push(array $arr, mixed $value1 );将一些东西进栈。
    4、切割和合并:array_slice(array $arr,int $star,int n u m ) ; a r r a y m e r g e ( num); array_ merge( num);arraymerge(arr1,$arr1);(ps:array_merge使用:当有重复的键名时,值会被覆盖);合并:array_merge_recursive(); (PS:当有重复的键名时,值不会会被覆盖)
    5、查询数组位置:array_search(“str”, $arr);
    6、查询数组中是否存在键: array_key_exists ( ‘first’ , $search_array )(放回boolean)
    7、计算数组总数:array_sum( $arr);
    8、移除数组中的重复值:array_unique( $arr);
    9、检查数组中是否有某个值:in_array("", $arr);
    10、 print_r() 函数可以打印输出整个数组内容及结构,按照一定格式显示键和元素。注意 print_r() 函数不仅是只用于打印,实际它是用于打印关于变量的易于理解的信息。
    11、var_dump() 函数也可以用于打印数组的数据及结构。不过 var_dump() 函数功能比 print_r() 更强大,可以同时打印多个变量且给出变量的类型信息
    12、array_count_values() 函数用于统计数组中所有的值出现的次数,返回一个数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数

  • 处理字符串
    PHP处理字符串的常用函数?(重点看函数的‘参数’和‘返回值’)

①trim()移除字符串两侧的空白字符和其他字符;②substr_replace()把字符串的一部分替换为另一个字符串;③substr_count()计算子串在字符串中出现的次数;④substr()返回字符串的一部分;⑤strtolower()把字符串转换为小写字母;⑥strtoupper()把字符串转换为大写字母;⑦strtr()转换字符串中特定的字符;⑧strrchr()查找字符串在另一个字符串中最后一次出现;⑨strstr()查找字符串在另一字符串中的第一次出现(对大小写敏感);strrev()反转字符串;strlen()返回字符串的长度;str_replace()替换字符串中的一些字符(对大小写敏感);print()输出一个或多个字符串;explode()把字符串打散为数组;is_string()检测变量是否是字符串;strip_tags()从一个字符串中去除HTML标签;mb_substr()用来截中文与英文的函数

  • 其他函数
    1、 isset()使用::bool isset ( mixed var );
    若变量不存在则返回 FALSE
    若变量存在且其值为NULL,也返回 FALSE
    若变量存在且值不为NULL,则返回 TURE
    2、

基础知识篇

1、0=null=false=‘0’=‘’;
原因是在PHP中变量是以C语言的结构体来存储的,空字符串和NULL,false都是以值为0存储的;

老调重提的面试知识点

  • Get与post的区别

  • Get从服务器获取数据,post向服务器提交、修改数据

  • Get传值在url中可见,post在url中不可见

  • Get传值一般在2KB以内,post传值大小可以在php.ini中进行设置

  • get安全性低,post安全性较高,执行效率却比Post高

  • 数据库查询优化:
    ①优化SQL语句,查询语句中尽量不使用select *,用哪个字段查哪个字段;少用子查询可用表连接代替;少用模糊查询;②数据表中创建索引;③对程序中经常用到的数据生成缓存;

  • Print、echo、print_r有什么区别?
    ① echo和print都可以做输出,不同的是,echo不是函数,没有返回值,而print是一个函数有返回值,所以相对而言如果只是输出echo会更快,而print_r通常用于打印变量的相关信息,通常在调试中使用。

② print 是打印字符串

③ print_r 则是打印复合类型 如数组 对象

  • SESSION与COOKIE的区别?

①存储位置:session存储于服务器,cookie存储于浏览器

②安全性:session安全性比cookie高

③session为‘会话服务’,在使用时需要开启服务,cookie不需要开启,可以直接用

编程篇

1、求斐波那契数组(1、2、3、5、8…):

function arrFibo($len){
 
      $arr[0] = 0;
      $arr[1] = 1;
      for($i=2;$i<$len;$i++){
      
          $arr[$i] = $arr[$i-1]+$arr[$i-2];
     }
     return $arr;
 }
 
  print_r(arrFibo(10));
 

2、数组逆序( 不能使用rsort、array_reverse函数)

$arr = array("a","b","c",1,10);
 4 $i = "";//要替换位置的数的下标
 5 $j = "";//临时变量
 6 $k = "";//被替换位置的数的下标
 7 
 8 $len = count($arr);
 9 $half_len = floor($len/2);//向下取整,取整的值是循环的次数
10 
11 for($i=0;$i<$half_len;$i++){
12 
13     $j = $arr[$i];
14     
15     //判断数组个数奇偶
16     if($len%2!=0){ //奇数
17     
18         $k = $half_len*2-$i;
19     }else{
20         
21         //偶数
22         $k = $half_len*2-$i-1;
23     }
24 
25     $arr[$i] = $arr[$k];
26     $arr[$k] = $j;
27 }
28 
29 echo "<pre>";
30 print_r($arr);
31 echo "</pre>";

排序的五大算法:冒泡排序

<?php
$arr = array(1,3,2,9,5,4);
function maopao($a){
$num = count($a);
	for($i = 0;$i<$num;$i++)
	{
	for($j = $i+1;$j<$num;$j++)
	{
	if($a[$i]>$a[$j])
	  {
		$temp = $a[$i];
		$a[$i] = $a[$j];
		$a[$j] = $temp;
	   }
	}
	}
	return $a;
}
print_r(maopao($arr));
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值