## :-: **單引號和雙引號的區別**
在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的信息。**
## :-: **你了解設計模式嗎?說下你最常用的設計模式**
- PHP書寫規則
- 代碼縮進
- 大括號{ }書寫規則
- 變量賦值對齊
- if條件判斷規范
- 避免嵌入式賦值
- 函數和方法的注釋
- 項目規范
- 業務邏輯logic
- model模型
- 控制器
- view視圖
- 定制項目開發
- 接口輸出變量格式
- mysql設計規范
- 二維碼系列
- php 用phprqcode 生成簡單的二維碼
- 小程序二維碼
- 其他小工具
- 獲取單個漢字拼音首字母
- js 調起打印多出一張空白的問題?
- php 2張圖片合拼
- 判斷一個漢字可以等于1個字符,2個字符,3個字符
- 微信小程序獲取頁面路徑
- 小程序js、canvas實現矩形圓角、圓形頭像圖片
- php phpMailer 發送郵件(親測有效)
- 系統配置表
- php 用tcpdf 生成pdf
- PHP mkdir():創建目錄
- php 通過svg動態生成生成后綴圖標
- php 本地安裝SSL證書
- php 生成首字母頭像
- php 接口數據壓縮返回,減少帶寬
- PHP向二維數組多維數組追加相同元素
- php 指定時間戳上加上一天,一個月,一年的方法
- Spreadsheet 表格生成
- php 多維數組排序 多維數組按照某個字段排序
- php根據開始和結束時間獲取期間日期
- php 獲取本周、上周、本月、上月及指定時間所在周、月的起止時間
- php GeoIP2通過ip獲取國家和地區城市
- 奇葩報錯問題
- session賦值報錯
- 服務器配置lnmp
- 開啟mysql binglog 日志
- lnmp 開啟遠程訪問3306
- 開啟mysql 慢日志查詢
- 開通Liunx 3306 端口(遠程連接開放)
- 搭建lnmp
- liunx 多臺服務器搭建共享文件夾圖片文件夾
- liunx 操作命令1
- nginx專區
- 禁止外部ip訪問
- 強制跳轉到https
- mysql專區
- 版本5.7報錯 only_full_group_by
- 把同一張表的一個字段的內容復制到另一個字段里
- lnmp關閉嚴格模式
- mysql 兩張不同結構的表連表查詢,合并,并分頁,排序 教你如何實現UNION
- mysql 查詢一張表中某個字段不同狀態的數量統計
- mysql數據庫快速插入百萬條級別的測試數據
- MySQL EXPLAIN 詳解,可用EXPLAIN來分析優化數據庫sql語句
- mysql 三星索引
- mysql 返回數據排名查詢獲取排名的方法,親測有效
- mysql使用查詢出來的值并且更新update新的表報錯?叫你一招
- mysql 怎樣自定義in查詢操作排序
- mysql 百萬級別和千萬級數據分頁查詢性能優化
- mysql 查詢某個字段按照逗號分割返回
- mysql 用sql命令導入數據庫
- mysql 根據某個字段的值匹配替換某個值
- Mysql中分組后取最新的一條數據排序
- Certbot-免費的https證書
- session_start()報錯問題
- 文件大打不開?代碼實現分割
- windows服務器專區
- apache 突然重啟動不了
- windows 定時任務
- liunx專區
- liunx 定時器檢查php是否能訪問,重啟
- liunx 操作命令
- 定時器 tp5 命令行
- liunx查看端口是否開放
- liunx上傳或者下載本地文件
- 前端
- jq克隆html
- Jquery添加元素(append,prepend,after,before四種方法區別對比)
- 小程序switch樣式修改
- css div 里面模塊 平均展開
- 安全小學堂
- 驗證碼一次一碼
- 實戰thinkphp6
- 前言
- 中間件
- 開啟多語言
- RabbitMQ 專區
- 下載RabbitMQ
- ftp專區
- Linux安裝vsftpd及配置詳解
- 小程序欄目
- 微信小程序封裝統一接口請求api數據
- 云數據庫
- 小程序云開發更新云函數數組的某一項,并且某個是變量代替
- php面試總結
- Mysql面試
- PHP面試知識
- Thinkphp框架小知識
- fastadmin 文檔
- fastadmin js 渲染 動態下拉(SelectPage)組件
- fastadmin 列表搜索欄 支持三級聯動 地區選項
- fastadmin searchList組件自定義數據返回
- 開發工具
- phpstorm 一直在Indexing,一直加載索引,無法正常使用
- PHP專區
- session 工作流程
- Redis
- php redis 基本操作
- SourceTree 3.3.9跳過注冊安裝
- composer 專區
- 手把手教你寫一個composer包
- freessl證書申請