1.語言解析:php
PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它能夠比CGI或者Perl更快速地執行動態網頁。css
用PHP作出的動態頁面與其餘的編程語言相比,PHP是將程序嵌入到HTML(標準通用標記語言下的一個應用)文檔中去執行,nginx
執行效率比徹底生成HTML標記的CGI要高許多;PHP還能夠執行編譯後代碼,編譯能夠達到加密和優化代碼運行,使代碼運行更快。數據庫
2.特性:apache
PHP的特性包括:
(1): PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。
(2): PHP能夠比CGI或者Perl更快速的執行動態網頁——動態頁面方面,與其餘的編程語言相比,編程
PHP是將程序嵌入到HTML文檔中去執行,執行效率比徹底生成htmL標記的CGI要高許多;
PHP具備很是強大的功能,全部的CGI的功能PHP都能實現。
(3): PHP支持幾乎全部流行的數據庫以及
操做系統。
(4):最重要的是PHP能夠用C、C++進行程序的擴展!緩存
3.優點:服務器
(1):開放源代碼
(2):免費性編程語言
和其它技術相比,PHP自己免費且是開源代碼。分佈式
(3):快捷性
程序開發快,運行快,技術自己學習快。嵌入於HTML:由於PHP能夠被嵌入於HTML語言,它相對於其餘語言。編輯簡單,實用性強,更適合初學者。
(4):跨平臺性強
因爲PHP是運行在服務器端的腳本,能夠運行在UNIX、LINUX、WINDOWS、Mac OS下。
(5):效率高
PHP消耗至關少的系統資源。
(6):圖像處理
用PHP動態建立圖像,PHP圖像處理默認使用GD2。且也能夠配置爲使用image magick進行圖像處理。
(7):面向對象
在php4,php5 中,面向對象方面都有了很大的改進,php徹底能夠用來開發大型商業程序。
(8):專業專一
PHP支持腳本語言爲主,同爲類C語言。
4.技術應用:
(1):僞靜態
(2):靜態頁面生成
(3):數據庫緩存
(4):過程緩存
(5):div+cssw3c標準
(6):大負荷
(7):分佈式
(8):flex
(9):桌面程序應用(不擅長)
(10):支持MVC模型
(11):Smarty模版引擎
5.PHP5:
PHP5在長時間的開發及多個預發佈版本後,2004年7月13日,PHP5.0發佈。該版本以
Zend引擎Ⅱ爲引擎,而且加入了新功能如PHP Data Objects(
PDO)。PHP5.0版本強化更多的功能。首先,徹底實現面向對象,提供名爲
PHP兼容模式的功能。其次是XML功能,PHP5.0版本支持可直觀地訪問XML數據、名爲SimpleXML的XML處理用界面。同時還強化了
XMLWeb服務支持,並且標準支持SOAP擴展模塊。數據庫方面,PHP新版本提供旨在訪問MySQL的新界面——
MySQL。除此前的界面外,還可使用面向對象界面和預處理語句(Prepared Statement)等MySQL的新功能.另外,PHP5.0上還捆綁有小容量RDBMS-SQLite.
新對象模式
*
構造函數和
析構函數 * 對象的引用 * 對象的克隆 * 對象中的私有、公共及受保護模式 * 接口 (Interfaces)
* 抽象類 * __call * __set 和 __get * 靜態成員
構造函數和析構函數
在 PHP4 中,當函數與對象同名時,這個函數將成爲該對象的構造函數,而且在 PHP4 中沒有析構函數的概念。
在 PHP5 中,構造函數被統一命名爲 __construct,而且引入了析構函數的概念,被統一命名爲 __destruct。
對象的引用
在PHP4中,傳遞變量給一個函數或方法,實際是把這個變量作了一次複製,也就意味着你傳給函數或方法的是這個變量的一個副本,除非你使用了引用符號「&;」 來聲明是要作一個引用,而不是一個 Copy。在 PHP5中,對象老是以引用的形式存在的,對象中的賦值操做一樣也都是一個引用操做。
對象的克隆
當一個對象始終以引用的形式來被調用時,若是我想獲得該對象的一個副本,該怎麼辦呢?PHP5 提供了一個新的功能,就是對象的克隆,語法爲 __clone。
抽象類不能被實例化。
抽象類與其它類同樣,容許定義變量及方法。
抽象類一樣能夠定義一個抽象的方法,抽象類的方法不會被執行,不過將有可能會在其派生類中執行。
__call
PHP5 的對象新增了一個專用方法 __call(),這個方法用來監視一個對象中的其它方法。若是你試着調用一個對象中不存在的方法,__call 方法將會被自動調用。
__set 和 __get
這是一個很棒的方法,__set 和 __get 方法能夠用來捕獲一個對象中不存在的變量和方法。
類型指示
在 PHP5 中,你能夠在對象的方法中指明其參數必須爲另外一個對象的實例。
靜態成員
靜態成員和靜態方法在面象對象編程的術語中被稱做 「類方法(class methods)」 和 「類變量(class variables)」。
「類方法」 在一個對象沒有實例化前容許被調用。一樣,「類變量」 在一個對象沒有實例化前能夠被獨立操做控制(不須要用一個對象的方法來控制)。
異常處理
異常處理是公認的處理
程序錯誤的理想方法,在 Java 及 C 中都有這個概念,咱們欣喜的看到,在 PHP5 已經加入了這方面的應用。你能夠嘗試使用 「try」 和 「catch」 來控制程序的錯誤。當有錯誤發生的時候,代碼會把錯誤交給 「catch」 子句來處理,在 「catch」 子句中,你須要指明要把錯誤交給某個對象處理,這樣作可使代碼結構看起來更清晰,由於咱們能夠把全部的錯誤信息交給一個對象來處理。
自定義錯誤處理
你能夠很方便的用自定義的處理錯誤的代碼來控制你的程序中的意外。你僅僅須要從異常類中派生出一個本身的錯誤控制類,在你本身的錯誤控制類中,你須要有一個構造函數和一個 getMessage 方法。
命名空間
名稱空間對類的分組或函數分組頗有用。它能夠把一些相關的類或函數給組合到一塊兒,方便之後調用。
例:名稱空間
<?php
namespaceMath
{
classComplex
{
//...code...
function__construct()
{
print("hey");
}
}
}
$m=newMath::Complex();
?>
注意你須要在何種狀況下使用名稱空間,在實際運用中,你可能會須要聲明兩個或多個名稱同樣的對象來作不一樣的事情,那麼你就能夠把他們分別放到不一樣的名稱空間中去(但接口是要相同的)。
加密
從PHP5.3開始支持ZendGuard加密方式,必須安裝Zend Guard Loader,老的zend optimizer將不被支持。
Linux安裝Zend Guard Loader支持的過程:
操做系統爲CentOS5.5,PHP版本爲5.3.8(CentOS5.5中的PHP默認版本較低,若是要升級到PHP最新版,可使用remi的report源進行升級)。
Windows 下面的 Zend Guard Loader 不支持php5.3.8 VC9 x86 Thread Safe而,php5.3.8 VC9 x86 Non Thread Safe 又不支持 apache。因此安裝的話,就須要安裝在iis或者和nginx搭配。
一、下載最新的Linux操做系統系下的Zend Guard Loader。
二、上傳至Linux服務器並解壓縮,注意閱讀生成目錄下的README文件。全文以下(添加必要的註釋)。在/etc/php.d/目錄下建立文件zend.ini,內容以下:
zend_extension=/usr/lib64/php/modules/ZendGuardLoader.so
注意路徑必定要寫上,剛開始沒寫路徑,總是加載不上ZendGuardLoader .so,也能夠直接將上面的配置寫入/etc/php.ini文件中,效果同樣。
三、重啓httpd服務:service httpd restart。
4.輸出<?php phpinfo(); ?>
PHP 5.5 正式版發佈 再也不支持 Windows XP
同時 PHP 開發者也提醒用戶,PHP 5.5 也包含一些不向後兼容的內容,包括:再也不支持 Windows XP 和 2003 系統;不區分大小寫的匹配函數、類;常數名稱跟 Locale 無關,這對一些使用非 ASCII 代碼的常量名的開發者須要注意的。