原文來自:http://www.cnblogs.com/sows/p/5995763.html (博客園的)風馬一族 侵犯版本,後果自負javascript
回顧
什麼是php以及php的發展史php
- 搭建web服務器
- apache:接收瀏覽器發出的請求以及返回結果(html)
- php: 處理php代碼,操做數據庫(mysql)
- mysql: 存儲和處理數據
- apache配置php
- 加載:LoadModule php5_module php5apache...dll
- 分配: addType application/x-httpd-php .php
- php配置文件:PHPIniDir php配置文件路徑
- php配置mysql
- 開啓擴展:extension php_mysql.dll
- 增長擴展路徑: extension_dir php_mysql.dll 所在的路徑
- apache工做原理
- 靜態頁:apache拿到文件後直接讀出內容交給瀏覽器
- php文件:apache拿到文件後交給php引擎處理,php把處理後生成的html文件交還給apache(php有可能操做數據庫:利用mysql擴展),apache將獲得的html內容返回瀏覽器
- web的工做原理(相似於4)
- 基於域名的虛擬主機配置:httpd.conf 加載httpd_vhost.conf,httpd_vhost.conf配置虛擬主機
- 注意
- 註釋或者刪除本來httpd_vhost.conf裏的虛擬主機
- 必須配置一個或者以上的虛擬主機
- 須要增長一個localhost的虛擬主機
---------------------------------------------------------------------------------------html
PHP的工做
php是一種腳本語言,嵌入到html代碼中。java
若是文件自己不以.php結尾的話,那麼該文件apache不會交給php處理,因此會將php代碼原封不動的交給瀏覽器,而瀏覽器又不能解析php代碼,因此就不會輸出最終php代碼所須要執行的結果mysql
1:在html文件中嵌入php代碼web
2. 在php文件中,html嵌入php代碼sql
注意:凡是以.php結尾的文件,apache都會交給php引擎處理。php引擎是選擇性處理,只處理php代碼,不會處理其餘非php代碼數據庫
---------------------------------------------------------------------------------------------------------------apache
php獨立文件
沒有其餘代碼(html),純粹都是php代碼。(不須要藉助apache工做,只須要php引擎)須要使用php.exe文件去運行php文件數組
---------------------------------------------------------------------------------------------------------------
php基礎知識
php標籤
1. 經常使用標籤
<?php
//php代碼
?>
是最多見一種標籤方式
2. php腳本標籤
<script language="php">
//php代碼
</script>
注意:腳本標籤的方式不多用,由於容易與javascript的標籤混淆
3. 短標籤
PHP默認不支持短標籤,須要在配置文件中設置 D:\service\php\php.ini
<?
//php代碼
?>
效果
注意:默認的,php已經不支持短標籤語法,須要在配置文件中開啓
PHP註釋
php註釋有兩大類:單選註釋和塊註釋(多行)
- 單行註釋有兩種
- 雙斜槓: //
- //輸出 hello
- echo "hello";
- #號: #
- # 輸入 hello
- echo "hello";
- 塊註釋 /* 註釋內容 */
- /*
* 函數功能
* @param 參數解釋
* @return 返回值解釋
*
* @author 做者
* @2016-10-25
*/
- 效果
- 注意:PHP在解析PHP代碼的時候,會跳過註釋,不會保留註釋信息
PHP變量
-
語法:$變量名
-
例子
-
$name
- $number
- $sex
- $age
- 變量命名規則
- 必須以$符號開始
- 變量名能夠由字母,下劃線和數字自由組合
- 不能以數字開頭
- 能夠是中文
- 變量命名一般須要見名之意
- 變量名字有多個單詞組成的時候,可使用兩種方式
- 駝峯法:schoolNameSex
- 下劃線:school_name_sex
- php中變量通常是在定義的時候就賦值
- 語法錯誤
- 弱類型語言
- 指的是變量能夠爲任意類型,而不須要指定具體類型。
1、使用變量
直接使用變量便可:前提條件是當前變量已經被賦值(定義)
輸出:echo $變量名;
判斷:if( $變量名 == ‘值’)
2、修改變量
將原有變量進行從新賦值
//定義變量
$age = 20
//修改變量
$age =34
echo $age //34
3、刪除變量
將變量所指向的值給釋放掉(將變量自己釋放)
unset(變量名)
//輸出已經釋放的變量
$age = 10;
unset($age)
echo $age //錯誤未定義
php常量
一旦被定義,就不能被修改,只能被使用的‘量’叫作常量。
一:語法
define('常量名',常量值);
二:常理使用的語法
- 直接使用常量名
- 不能加 $ 否則會出錯誤
三:常量的使用
-
- 某個值不須要變化的時候。例如數字常量PI
- 用於整個網站
- 凡是能使用常量去作的事情均可以使用變量去替代。常量是用來規範保證數據不被修改。
四:常量命名規則
- 常量不能使用$符號
- 其餘命名規則與變量基本一致
- 常量命名一般使用所有大寫字母,多單詞的常量都是使用下劃線方式。
- 常量與變量同樣都區分大小寫
五:變量與常量的內存原理圖
六:php腳本執行結束後內存是如何處理的?
- 什麼叫作PHP腳本執行結束?
指的是當PHP引擎將用戶請求的某個php腳本文件(index.php)的最後一行PHP代碼執行完畢,稱之爲腳本執行結束
- 腳本結束後內存如何處理?
PHP腳本所佔用的全部內存都會被釋放、被操做系統回收
七:注意
- 結束標籤
- 結束符號能夠不存在,條件是文件中的PHP代碼後面沒有其它語言的代碼
- 結束符號若存在,則結束符號後面存在空格的話,空格會看成Html代碼發出,後果是空格至關無用的代碼,浪費帶寬
- php代碼嵌入html中,最好使用結束符號,減小錯誤出現
- 結束語句的結束符號: 英文符號 ;
- 若存在結束標籤,最後一句中,能夠不使用結束符號
- 若不存在結束符號,則每句都要使用結束符號
- 常量的定義比變量更加鬆散
- 變量與常量的命名建議
- 不使用中文使用變量名
- 全部的變量或者常量,都建議使用字母配合下劃線的方式去實現,變量中還能夠配合數字
-----------------------------------------
數據類型
數據類型是針對各類(變量)值而言,而不是針對變量自己
- PHP有三大數據類型:標量、複合、特殊 、
- 標量數據類型(簡單數據類型)
- 整型
- int integer 、
- 整型在系統內存中佔4個字節保存數據
- 浮點型
- float double(PHP沒有這個)
- float佔用8個字節(這是PHP規定的大小)
- 浮點數會丟失精度,於是一般不使用浮點數來比較大小
- 通常對於精確要求不是那麼高的,可是數據又特別大時,可使用浮點數,其它狀況通常使用整型
- 時間戳
- 從1970年到當前時間的秒數稱之爲時間戳
- php提供了一個函數:time()
- 獲取時間戳
- 效果
- 使用Date() ,能夠格式化時間
- 字符串 string
- 凡是帶引號包好的字符均可以稱之爲字符串
- 字符串的表示方式
- 單引號
- 將字符串用單引號包裹起來
- 雙引號
- 將字符串用雙引號包裹起來
- 與單引號的不一樣之處有:
- 雙引號中可以使用更多的轉義字符
- 可以解析PHP變量
- 在兩個字符串鏈接,不出現空格的方法
- 使用點
- 使用中括號
- 效果
- 定界符
使用一種特殊的符號 <<< ,增長一對起始和結束標識來包括字符串
- 語法
$str=<<<EOD
//字符串
EOD; //這句話只能單獨佔用一行,且在行頭處,不能有空格 (否則會出錯)
- 效果
- 定界符使用規則
- 定界符的邊界符號必須成對
- 右定界符必須頂格
- 兩個定界符後面都不能跟任何其餘內容
- 定界符的意義
- 爲了讓雙引號對應的字符串在編寫的時候查看
- 定界符可以在輸出以後保證原來的數據格式
- heredoc結構就是以上所講的定界符,對應雙引號功能
$str=<<<eof
eof;
- nowdor結構也是以上結構,只是對應單引號功能
$str=<<<'eof'
eof;
- 佛日:單引號比雙引號的字符串效率要高,由於單引號不須要去解析其中的變量等內容,只要直接輸出便可。
- 布爾
- bool Boolean , 只有兩個值true和false
- 效果 val_dump(值或變量) 用來測試變量或值的類型
- 哪些數據會被當作False處理?
- 須要經過比較的形式來判斷是否爲False
-
0:整型0
0.0:浮點0
‘0’:字符串0
null:空
‘’:空字符串
- 複合數據類型
- 數據
- 數組
- 特殊數據類型
- NULL: 定義的變量的值爲NULL或者變量被刪除
- 效果
- 資源: 全部外部數據的操做所有稱之爲資源類型數據
- 例如: PHP操做數據庫中,mysql_connect鏈接成功返回的一個結果稱之爲資源(鏈接資源)
進制轉換
二進制、八進制、十進制、十六進制等間的轉化
系統預約義變量
系統定義的變量稱之爲預約義變量,預約義變量有9個
- $_POST: 接收用戶表單post方式提交的全部數據
- $_GET: 接收用戶表單get方式提交的全部數據
- $_REQUEST: 接收用戶get方式,post方式提交的數據,還有cookie數據
- $_FILES:接收用戶上傳的文件信息
- $_SEEEION: 存放session數據(存放在服務器)
- $_COOKIE: 存放cookie數據(存放在瀏覽器)
- $_GLOBALS: 全局變量
- $_SERVER: 保存服務器信息 (掌握幾個經常使用的數據)
- $_ENV: 保存系統環境信息
系統預約義常量
- PHP_OS: 操做系統內核
- PHP_VERSION: 當前PHP的版本
- PHP_INT_SIZE: int類型所佔的字節數
- PHP_INT_MAX: int類型能表示的最大值
- 魔術常量: 能夠自動變化的常量
- _FILE_: 當前腳本的文件路徑(絕對路徑)
- _LINE_: 當前所在的行數
- _DIR_: 當前腳本所在的目錄 (PHP4纔有)
- _FUNCTION_: 當前函數的名字
- _METHOD_: 當前方法的名字(類中的函數)
可變變量
經過一個獲得一個變量的值,將該值再次當作一個變量名從而獲得另一個變量的值
即變量的值,看成另個值的變量
傳值
變量間的賦值
- 變量間的傳值分爲兩種:值傳遞和引用傳遞
- 值傳遞
- 將一個變量的值賦值一份,而後賦值給新的變量
- 一個變量的變動不會影響另一個變量的變動
- 引用傳遞
- 將一個變量的地址賦值給新的變量
- 在給變量賦值的時候,使用地址符號&得到一個變量的地址
- unset 原理
- 圖解
- 交換變量值 (兩個變量都是整數)
- 使用第三個變量來讓兩個變量的值的交換
- 不使用第三個變量交換兩個變量的值