多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## :-: **单引号和双引号的区别** 在PHP中,字符串的定义可以使用单引号,也可以使用双引号。但是必须使用同一种单或双引号来定义字符串,如:‘Hello"和“Hello'为非法的字符串定义。  定义字符串时,只有一种引号被视为定义符,即单引号或双引号。于是,如果一个字符串由双引号开始,那么只有双引号被分析器解析。这样,你就可以在双引号串中包含任何其他字符,甚至单引号。 ## :-: **isset 和 empty 的区别** **empty方法:** * 变量不存在,返回true * 变量存在,值为空,返回true * 变量存在,值不为空,返回false **isset方法:** * 变量存在,返回true * 变量不存在,返回false ## :-: **Cookie 和 Session 的区别和关系** * **安全性** Session 比 Cookie 安全性更高。 * **存储位置不同** Cookie 在客户端(浏览器) Session 在服务器端。 * **存储容量不同** 单个 Cookie 保存的数据不能超过 4K,一个站点最多保存20个Cookie。 对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制。 * **服务器压力不同:** session是保管在服务器端的,每个用户都会产生一个session。假如并发访问的用户十分多,会产生十分多的session,耗费大量的内存。 cookie保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie是很好的选择。 * **跨域支持上不同:** cookie支持跨域名访问。session不支持跨域名访问。 ## :-: **如何实现不基于session和cookie的用户认证。** 将用户信息加密放到http的header部分,每次拿到http的时候,验证获取header的信息 # :-: 进阶篇 ## :-: **TCP为什么是三次握手,为什么不是两次或者四次** 这是一个很有意思的问题~     首先,我们要知道**TCP是全双工**的,即客户端在给服务器端发送信息的同时,服务器端也可以给客户端发送信息。而半双工的意思是A可以给B发,B也可以给A发,但是A在给B发的时候,B不能给A发,即不同时,为半双工。 单工为只能A给B发,B不能给A发; 或者是只能B给A发,不能A给B发。   我们假设A和B是通信的双方。我理解的握手实际上就是通信,**发一次信息就是进行一次握手**。 * 第一次握手: A给B打电话说,你可以听到我说话吗? * 第二次握手: B收到了A的信息,然后对A说: 我可以听得到你说话啊,你能听得到我说话吗?   * 第三次握手: A收到了B的信息,然后说可以的,我要给你发信息啦!   **在三次握手之后,A和B都能确定这么一件事: 我说的话,你能听到; 你说的话,我也能听到。 这样,就可以开始正常通信了。**   **注意: HTTP是基于TCP协议的,所以每次都是客户端发送请求,服务器应答,但是TCP还可以给其他应用层提供服务,即可能A、B在建立链接之后,谁都可能先开始通信。   如果两次,那么B无法确定B的信息A是否能收到,所以如果B先说话,可能后面的A都收不到,会出现问题   如果四次,那么就造成了浪费,因为在三次结束之后,就已经可以保证A可以给B发信息,A可以收到B的信息; B可以给A发信息,B可以收到A的信息。** ## :-: **你了解设计模式吗?说下你最常用的设计模式**