PHP基礎知識
1、PHP是什麼?
PHP是一種建立動態互動性站點的伺服器指令碼語言。
2、PHP的語法
PHP指令碼可以放置在文件的任何位置,PHP指令碼是以<?php開始,?>結束。PHP檔案的預設副檔名是“.php”,PHP檔案通常包含HTML標籤和PHP指令碼程式碼。PHP中每個程式碼行必須以分號(;)結束,分號是一種分隔符,用來把指令集區分開來。
3、PHP變數
變數是用於儲存資訊的容器。
4、echo、print、print_r、printf、sprintf、var_dump的區別
echo是PHP語言,沒有返回值,可以輸出一個或多個簡單型別資料(int、string)。
print即使函式又不能算是函式(print()可以列印資料,print也可以直接列印資料),有返回值,可以列印一個簡單型別的資料(int、string)。
print_r是函式,有返回值,可以列印複雜型別的資料(array、object)。
printf是函式,輸出格式化之後的字串。
sprintf是函式和printf一樣,唯一不同的是它不會直接輸出,而是要賦值給一個變數。
var_dump是函式,用來輸出變數的內容、型別、長度,通常用來除錯。
5、EOF(heredoc)是什麼及使用方法
EOF(heredoc)是一種在命令列和程式語言裡定義一個字元的方法。
- 結尾必須以分號結束,否則編譯不成功。
- EOF可以用任何字元代替,但首位必須一致。
- 結束標識必須頂格獨自佔一行(從首行開始前後不能銜接任何空白字元)
- 開始標識可以不帶引號或帶單雙引號,不帶引號和帶單雙引號效果一樣。
5、PHP資料型別
integer(整型)、string(字串)、float(浮點型)、boolean(布林)、array(陣列)、object(物件)、null(空值)
6、PHP常量
常量是一個簡單值得識別符號,該值在指令碼中不能改變。常量名稱是由英文、下劃線、和數字構成,但是數字不能作為首字母(常量名不需要加$符),常量是全域性的。
define('常量名稱', '常量值', false),define用來定義常量,第一個引數是常量名稱,第二個引數是常量值,第三個引數是bool(true、false)預設是false大小寫敏感,true是大小寫不敏感。
7、PHP註釋符號
- /*多行註釋*/
- //單行註釋
- #單行註釋
8、在PHP裡 .的作用是什麼
在PHP裡 . 的作用是拼接字串
9、PHP運算子
- 算術運算子:+相加、-相減、*乘法、/除法、-x取反、%除法取餘、.拼接、intdiv()整除(PHP7+新增運算子)
- 賦值運算子:=左側運算元被設定為右側表示式數、+=相加、-=相減、*=相乘、/=相除、%=除法取餘、.=連線兩個字串
- 遞增、遞減運算子:++i(先i+1,然後返回i)、i++(先返回i,然後i+1)、--i(先i-1,然後返回i)、i--(先返回i,然後i-1)
- 比較運算子:==相等、===絕對相等(型別相同)、!=不等、!==絕對不等、<>不等、<小於、>大於、<=小於等於、>=大於等於
- 邏輯運算子:and與、or或、&&與、||或、xor異或、!非
- 陣列運算子:+集合、==相等、===恆等、!=不相等、!==不恆等、<>不相等
- 三元運算子:格式(isset($x) ? $x : $y),PHP7+新增null合併運算子??(格式:$x ?? '$x為空',$x存在不為null,返回$x。為null返回錯誤提示)
- 組合比較符:PHP7+新增組合運算子也稱之為太空船運算子,可以輕鬆實現兩個變數的比較,不僅限於數值類的比較。組合運算子格式:<=>,組合運算子解析:$x = $a <=> $b,$a > $b則$x等於1,$a < $b則$x等於-1,$a == $b則$x等於0。
10、if...elseif...else和switch判斷語句
if...elseif...else和switch都是根據條件判斷去執行不同動作。
11、超全域性變數
超全域性變數是PHP自帶變數,在指令碼的全部作用域都可用。$GLOBALS、$_GET、$_POST、$_FILES、$_ENV、$_SERVER、$_COOKIE、$_SESSION、$_REQUEST
12、PHP迴圈
while、do...while、for、foreach
13、魔術常量
__LINE__檔案中當前行號、__FILE__檔案完整的路徑和檔名、__CLASS__當前類名、__FUNCTION__當前函式名、__METHOD__當前類名和方法名、__NAMESPACE__當前名稱空間、__DIR__檔案所在目錄、__TRAIT__程式碼複用方法traits
14、include、require、include_once、require_once的區別
include、require、include_once、require_once包含載入檔案其他檔案程式碼
include、require不同之處:require會產生致命報錯,當檔案程式碼有錯誤的時候指令碼會停止執行,include在檔案程式碼有錯誤時會生成一個警告,指令碼會繼續執行。
include_once、require_once只包含一次,如果已經存在檔案程式碼,就不會繼續包含載入。
15、cookie、session的相同和不同之處
cookie、session跨頁面不跨使用者,cookie只能能儲存字串型別資料,session可以儲存任何人型別資料。cookie產生於伺服器,儲存在客戶端。session產生於伺服器,儲存在伺服器。
16、Redis和MemCached的區別:
Redis和MemCached都是key-value儲存系統,MemCached儲存資料型別單一,Redis可儲存多種資料型別。Redis速度比MemCached快,MemCached存在記憶體中,斷電資料會丟失。
17、Redis資料型別
string字串、hash雜湊、list列表、set集合、sorted set有序集合
18、MySQL int(11)可以儲存手機號碼嗎
不可以,int型別的長度4個位元組,手機號在第5個位元組的時候會被吞掉。
19、MySQL索引有幾種,有什麼區別沒有
- 普通索引:沒有任何限制
- 唯一索引:與普通索引類似,不同之處就是索引欄位值是唯一的允許有空值
- 主鍵索引:一般是建表的時候設定,主鍵值是唯一的,不允許有空值
- 複合索引:多個列上建立索引,加速複合條件查詢
- 全文索引:在MySQL5.6之前只有MyISAM引擎有全文索引,MySQL5.6之後InnoDB也支援全文索引。
20、MySQL中MyISAM和InnoDB的區別
MyISAM引擎查詢快,支援全文索引,不支援事務、外來鍵,支援表級鎖。
InnoDB引擎查詢慢,增刪改快,支援事務、外來鍵,支援事務和行級鎖。MySQL5.6之後支援全文索引。
21、InnoDB 4大特徵
- 插入緩衝
- 二次寫
- 預讀
- 自適應hash索引
21、資料庫最佳化
- 選擇合適的欄位型別(比如用varchar替換char)
- 用join連線代替子查詢
- 使用union聯合代替手動建立臨時表
- 事務
- 鎖定表
- 使用外來鍵
- 使用索引
- 最佳化查詢語句
- 分庫、分表
22、最佳化查詢語句的方法
- select查詢儘量不要直接用*,直接使用指定的欄位
- 在相同型別的欄位上作比較操作(不用進行型別轉換)
- 不要在索引的欄位上使用函式操作
- 儘量使用數字型別欄位
- 避免使用!=、<>、is null、is not null
- 建議每張表都設定自增主鍵
- 避免大事務操作
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990906/viewspace-2745166/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PHP物件基礎知識PHP物件
- PHP 基礎知識-1PHP
- PHP基礎知識——PHP偽協議PHP協議
- 基礎知識
- Envoy基礎知識
- DockerFile基礎知識Docker
- Webpack 基礎知識Web
- js基礎知識JS
- React基礎知識React
- 程式基礎知識
- Docker基礎知識Docker
- qml基礎知識
- Mybatis基礎知識MyBatis
- python基礎知識Python
- Hadoop基礎知識Hadoop
- webpack基礎知識Web
- AI 基礎知識AI
- JSP基礎知識JS
- Dart基礎知識Dart
- RabbitMQ基礎知識MQ
- Android基礎知識Android
- 1、基礎知識
- 前端基礎知識前端
- Camera基礎知識
- Kafka 基礎知識Kafka
- Vue基礎知識Vue
- java基礎知識Java
- linux基礎知識Linux
- PRML 基礎知識
- SpringCloud 基礎知識SpringGCCloud
- javascript基礎知識JavaScript
- python 基礎知識Python
- Laravel基礎知識Laravel
- BGP基礎知識
- Redis基礎知識Redis
- CSS基礎知識CSS
- ThinkPHP基礎知識PHP
- Nginx基礎知識Nginx