什麼是PHP? 拍黃片。 HTML:HyperText Mark-up Language 超文本標記語言 PHP(PHP:Hypertext Preprocessor )超文本預處理器,是一種運行在服務器端的腳本語言,尤爲適合web開發。 PHP能幹什麼? 收集表單數據 生成動態網頁 收發cookies 跨平臺運行 輸出圖像 文件處理 處理XML格式的數據 處理JSON格式的數據 會話跟蹤 。。。。。 服務端腳本,用於寫web網頁(主攻)CGI 命令行腳本,CLI 編寫桌面應用程序 PHP的特色 跨平臺運行 開源免費 http://www.github.com 支持大多數的web服務器 支持很大範圍的數據庫 PHP的發展史 1995年由Lerdorf(PHP之父)發明 1998年PHP3發佈 2000年PHP4發佈,開始引入面向對象的思想(半成品) 2004年PHP5發佈,徹底的支持面向對象思想 5.4或者5.6最穩定 2015年12月3號直接發佈了PHP7,速度翻了一倍 第一個PHP文件 1.環境裝好以後,進入到網站根目錄(www,若是不是wampserver,有多是htdoc) 2.新建的文件後綴名必定是.php,文件名不能是中文的 3.寫php代碼:phpinfo(); 4.在瀏覽器中訪問文件:http://localhost:80/demo.php HTML中嵌套PHP代碼: 1.文件後綴必須是php 2.能夠嵌套到任何地方:body中、html以外、屬性中、css中 3.PHP代碼必須被<?php ?>所包裹 PHP的標記 1.標準風格(經常使用) <?php php代碼 ?> 5.<?= 是echo的簡寫(經常使用) <?='123';?> 至關於 <?php echo '123'; ?> 2.長風格(廢物!!!!) <script language="php">php代碼</script> 3.短風格(廢物!!!!) <? php代碼 ?> 須要在php.ini中開啓short_open_tag(將它設置爲on,默認爲off) 4.asp風格(廢物!!!!) <% php代碼 %> 須要在php.ini中開啓asp_tag(將它設置爲on,默認爲off) 注意: PSR規範中,只容許使用<?php ?>和<?= ?>這兩種 若是是純php文件,標準風格的結束標記能夠不寫 指令分隔符 PHP中語句分爲兩種 1.結構定義語句 流程控制、分支、循環、函數。。。用大括號標識,能夠不加分號 2.功能執行語句 輸出、變量定義、函數調用。。。後面必須加上分號 提示:php的結束標記中隱含了一個分號,最後一條語句能夠不加分號 PHP中的註釋 註釋掉的代碼,PHP都會忽略解析 1.//單行註釋 //註釋內容。。。 2.多行註釋 /* 註釋內容 */ 3.#單行註釋 # 註釋內容。。。 PHP中對空白符的處理 PHP會忽略空格、換行、tab製表符的解析,因此能夠利用這個特色寫出可讀性比較高的代碼 要求:php代碼必需要按照嚴格的縮進;PSR規範規定,縮進只能4個空格(由於tab製表符的寬度,編輯器解釋不同,不利於代碼的移植) 變量 什麼是變量? 變量是用於臨時存儲值的容器 值能夠是數字、文本或者其餘一些比較複雜數據(數組、對象) 變量的特性 PHP是弱類型的語言,沒必要告知變量的類型是什麼,它會根據存儲的值來決定這個變量是什麼類型的 *變量的命名規範: 1.必須以$開始,後面跟變量名 2.變量名由字母、數字或者下劃線_組合而成 3.不能以數字開頭 4.嚴格區分大小寫 5.能夠是中文,可是別讓我看到這種代碼,否則罰抄10000遍 PHP中的數據類型 4種標量類型 boolean 布爾型 只有兩個值,要麼是true,要麼是false 一般用於if判斷,其餘類型轉換爲布爾型獲得false的狀況: 布爾型:false 字符串:'' '0' 整型:0 -0 浮點型:0.0 數組:array() 空數組 null:null(包括未定義的變量) 其餘全部值都被認爲是true integer 整型 1.整型值可使用十進制,十六進制,八進制或二進制表示,前面能夠加上可選的符號(- 或者 +)。 八進制表達,數字前必須加上0(零) 十六進制表達,數字前必須加上 0x 二進制表達,數字前必須加上 0b 2.PHP中整型的字長用PHP_INT_SIZE表示,通常佔4個字節 3.整型的取值範圍:PHP_INT_MAX 正負二十多個億!超出取值範圍自動轉換爲浮點型 -2147483647~2147483647 float 浮點型 1.浮點數,就是有小數點的數,一般用來表示整數沒法表達的數值,好比金錢值、距離值、速度值 2.能夠用科學計數法來表示 3.在PHP中float也有最大數,1.8e308 4.浮點數的精度有問題 5.將浮點數取整的函數 round() 四捨五入 floor() 捨去取整 ceil() 進一取整 string 字符串類型 定義方式: 1. 單引號 2. 雙引號 3. heredoc 定界符方式 4. nowdoc(5.3以上) 單雙引號的區別: 一、雙引號能夠解析變量;單引號不能解析變量,會原樣輸出; 二、雙引號能夠解析轉義字符;單引號只能轉義\\和\'自己; 三、單雙引號都不能本身嵌套本身,能夠互相嵌套 轉義字符: \r 回車 \n 換行 \t 製表符 \\ 斜線自己 heredoc和nowdoc heredoc定界符能夠嵌套單雙引號,能夠解析變量和轉義字符 nowdoc能夠嵌套單雙引號,不能解析變量和轉義字符 建議:儘可能使用單引號,效率略高 2種複合類型 array 數組類型 object 對象類型 2種特殊類型 resource 資源類型 null 空 只有一個值,就是null自己 獲得null的狀況: 一、直接賦值爲null 二、未被賦值的變量,默認值也是null 三、被unset()刪除掉的變量也是null PHP中的僞類型(看手冊,var_dump()),並非PHP的原始數據類型 mixed:表明這個參數能夠是多種不一樣的類型 number:表明這個參數能夠是int或者float pow() callback:還有個別名叫callable,表明這個參數必須是一個函數(回調函數) call_user_func()、session_set_save_handler() void:表明這個函數不接收任何參數;若是做爲返回值,表示這個返回值是無用的 time( void ) var_dump() unset() PHP中的類型轉換 強制轉換 (int)/(integer) 強制轉換爲整型 (bool)/(boolean) 強制轉換爲布爾型 (float) 強制轉換爲浮點型 (string) 強制轉換爲字符串 (array) 強制轉換爲數組 (object) 強制轉換爲對象 (unset) 強制轉換爲null 自動轉換 布爾環境 數值環境 字符串環境 數據類型的判斷: is_bool() 檢測變量是不是布爾型 is_string() 檢測變量是不是字符串類型 is_int() 檢測變量是不是整型 is_float() 檢測變量是不是浮點型 is_array() 檢測變量是不是數組類型 is_object() 檢測變量是不是對象類型 is_resource() 檢測變量是不是資源類型 is_null() 檢測變量是不是null空類型 is_scalar() 檢測變量是不是標量類型(int、float、string、boolean) is_numeric() 檢測變量是不是數字或數字字符串 gettype($a) 獲取變量的類型 settype($a, 'bool') 設置變量的類型(相似於強制轉換) 常量 常量 漢語字典中第1條解釋:長久,經久不變,常量也就是恆量 一經定義,不能刪除和改變。 常量的定義: define define('常量名', 常量值); const const 常量名 = '常量值'; 常量名: 和變量名同樣,只能是數字、字母或下劃線; 不能以數字開頭 (定義的時候能夠,但用不了) 嚴格區分大小寫(define能夠經過第3個參數指定是否區分大小寫,true不區分) 常量值: define定義的常量,除了object以外,均可以;(數組是PHP7新加的) const定義的常量值,不能是資源和對象; define和const的區別: const可在類中使用,define不能 const不能在條件語句中定義常量 const採用一個普通的常量名稱,define能夠採用表達式做爲名稱 const只能接受靜態的標量,而define能夠採用任何表達式 const定義的常量時大小寫敏感的,而define可經過第三個參數(爲true表示大小寫不敏感)來指定大小寫是否敏感。 提示:echo一個未定義的常量時,會報一個notice並將常量名自動轉換爲字符串輸出; defined(常量名) 用於檢測常量是否認義 預約義常量:get_defined_constants()獲取當前已經定義好的常量! PHP_INT_MAX PHP_INT_SIZE PHP_VERSION ... 魔術常量: 值會隨着環境的變化而改變 __LINE__ 當前行號 __FILE__ 當前文件 __DIR__ 當前文件的目錄 __CLASS__ __METHOD__ __NAMESPACE__ 。。。 運算符 運算符是能夠經過給出的一個或多個值來產生另外一個值的東西; 有3種類型的運算符 一元運算符 只可以接收1個值參與運算的叫一元運算符 1 -1 負值運算符 ++ -- ! 二元運算符 2 + 2 算術運算符 + - * / 三元運算符 3 能夠接收3個值的就是三元運算符 算數運算符 + - * / % 取餘(取模)運算 39 % 3 == 0 求兩個數相除的餘數;39除以3餘數爲0 遞增遞減運算 ++ $i++; //後遞增: 先返回$i,再將$i的值加1,下次用的時候值就是加1後的 ++$i; //前遞增:先將$i的值加1,而後返回加過1後的$i -- $i--; //同上 --$i; 提示:對布爾值無效 字符串運算符 . 將其左右參數進行拼接運算 .= 將右邊參數,附加到左邊參數以後 賦值運算符 = 將右邊的表達式的值,賦值給左邊的變量 += $a += 3; //將$a加上3以後再賦值給$a,能夠拆爲$a = $a + 3; -= *= /= %= 比較運算符 > 大於 < 小於 >= 大於等於 <= 小於等於 == 等於 === 全等於 != | <> 不等於 !== 不全等於 邏輯運算符: 邏輯與:&& and 想娶大家丹姐,你要有房,而且還要有車! 洗臉:左臉和右臉 只有兩邊都爲true,才返回true,不然返回false 邏輯或:|| or 想娶鳳姐,要麼你財大,要麼你器粗! 丟錢包:你找到了,或者我找到了 只要有任何一邊爲true,結果就爲true; 注意:前面爲true,後邊就再也不執行,俗稱短路 邏輯非 ! 小星星原本是純爺們(true),去了趟泰國,被砍了一刀(false),就不純了 就是取反的意思 $bool = true; !$bool == false 邏輯異或 xor 男(true)男(true)不能結婚; 女(false)女(false)也不能結婚 兩邊不同才返回true,不然返回false 位運算符(瞭解) 按位與 & 按位或 | 按位異或 ^ 左移 << 右移 >> 按位非 ~ 其餘運算符 ?: 三元運算符 表達式1 ? 表達式2 : 表達式3; 1爲真就執行2,爲假就執行3; @ 錯誤控制符,能夠屏蔽錯誤 `` 執行運算符,能夠執行一些操做系統的命令 //別急,講到相應知識點的時候會補充講解 => 數組下標指定符號 -> 對象成員訪問符 instanceof 類型運算符