加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 交互 > 正文

PHP 经典面试题集

发布时间:2020-12-25 07:13:53 所属栏目:交互 来源:网络整理
导读:这篇文章介绍的内容是关于PHP 经典面试题集 PHP 经典面试题集,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 结合我自己面试情况,面对的一些php面试题列举出来,基本上结合自己的看法回答的,不妥的地方请大家指出去,与大家一起讨论分析

24. redis 和 memache 缓存的区别

总结一:

 

1.数据类型

 

Redis数据类型丰富,支持set list等类型

memcache支持简单数据类型,需要客户端自己处理复杂对象

 

2.持久性

 

redis支持数据落地持久化存储

memcache不支持数据持久存储

 

3.分布式存储

 

redis支持master-slave复制模式

memcache可以使用一致性hash做分布式

 

value大小不同

 

memcache是一个内存缓存,key的长度小于250字符,单个item存储要小于1M,不适合虚拟机使用

 

4.数据一致性不同

 

redis使用的是单线程模型,保证了数据按顺序提交。

memcache需要使用cas保证数据一致性。CAS(Check and Set)是一个确保并发一致性的机制,属于“乐观锁”范畴;原理很简单:拿版本号,操作,对比版本号,如果一致就操作,不一致就放弃任何操作

 

5.cpu利用

 

redis单线程模型只能使用一个cpu,可以开启多个redis进程

 

总结二:

 

1.Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcached相比一个最大的区别。

2.Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。

3.Redis支持数据的备份,即master-slave模式的数据备份。

4.Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。

我个人认为最本质的不同是Redis在很多方面具备数据库的特征,或者说就是一个数据库系统,而Memcached只是简单的K/V缓存

 

总结三:

 

redis和memecache的不同在于:

 

1、存储方式:

memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小

redis有部份存在硬盘上,这样能保证数据的持久性。

2、数据支持类型:

redis在数据支持上要比memecache多的多。

3、使用底层模型不同:

新版本的redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。

4、运行环境不同:

redis目前官方只支持Linux 上去行,从而省去了对于其它系统的支持,这样的话可以更好的把精力用于本系统 环境上的优化,虽然后来微软有一个小组为其写了补丁。但是没有放到主干上

 

memcache只能当做缓存,cache

redis的内容是可以落地的,就是说跟MongoDB有些类似,然后redis也可以作为缓存,并且可以设置master-slave

25.表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。

drop table table1  create table table1(  

    a int,b int,c int  )  insert into table1 values(22,24,23)  

  select * from table1  

  select (case when a>b then a else b end),(case when b>c then b else c end)  from table1  

  select (case when a>b then a  

             when a>c then a  

             when b>c then b else c  

             end)  from table1

26.安装Linux系统中,用netconfig程序对网络进行配置,要输入哪些内容?

会让用户输入主机名、域名、域名服务器、IP地址、网关地址和子网掩码等必要信息

27. PHP 如何写接口给人家调用?

public function  authenticationApi($data,$url){       

 $ch  = curl_init();       

  curl_setopt($ch,CURLOPT_URL,$url);        

  curl_setopt($ch,CURLOPT_POST,1);        

  curl_setopt($ch,CURLOPT_HEADER,0);        

  curl_setopt($ch,CURLOPT_RETURNTRANSFER,CURLOPT_POSTFIELDS,$data);    

  //输出格式可以转为数组形式的json格式        

  $tmpInfo = curl_exec($ch);        

  curl_close($ch);        

  return $tmpInfo;    

  }

28.用PHP header()函数实现页面404错误提示功能

Header("HTTP/1.1 404 Not Found");

29.heredoc结构及用法

echo <<<EOT

   <html>

   <head><title>主页</title></head>

   <body>主页内容</body>

   </html>

EOT;

 

注意:结束标识符所在的行不能包含任何其它字符除";"

30.nowdoc结构及用法

$str = <<<'EOD'

       Example of string

       spanning multiple lines

       using nowdoc syntax.

EOD;

31.javascript 判断弹出窗口是否被屏蔽程序代码

var wroxWin = window.open("http://www.111cn.net","_blank");if (wroxWin == null) {

    alert("糟糕!弹出窗口被屏蔽了");}

32. php序列化和反序列化用的函数

serialize() 序列化

 

unserialize() 反序列化

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读