導航:首頁 > 編程語言 > php面向對象視頻

php面向對象視頻

發布時間:2024-07-04 00:35:40

php是什麼意思

php通常指超文本預處理器,用於面向對象、命令編程,是一種通用開源腳本語言。

主要特點:

為開源性和免費性、快捷性、資料庫連接的廣泛性、面向過程和面向對象並用。優點是利於學習,使用廣泛。此外,php還可以指菲律賓比索的標准貨幣代碼符號,MPLS網路中的倒數第二跳彈出功能。是英文超級文本預處理語言Hypertext Preprocessor的縮寫。PHP 是一種HTML 內嵌式的語言,是一種在伺服器端執行嵌入HTML文檔的腳本語言,語言風格有些類似於C語言,被廣泛的運用。

簡介:

PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標准通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。

特性包括:

1、PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法

2、PHP可以比CGI或者Perl更快速的執行動態網頁——動態頁面方面,與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成htmL標記的CGI要高許多;PHP具有非常強大的功能,所有的CGI的功能PHP都能實現

3、 PHP支持幾乎所有流行的資料庫以及操作系統。

4、最重要的是PHP可以用C、C++進行程序的擴展!

語言特點:

開源免費

PHP是一個受眾大並且擁有眾多開發者的開源軟體項目,linux + Nginx + Mysql + PHP是它的經典安裝部署方式,相關的軟體全部都是開源免費的,所以使用PHP可以節約大量的正版授權費用。不過PHP作為一個開源軟體,它缺乏大型科技公司的支持背景,網路上對它的唱衰也是經久不衰,不過它的持續迭代和性能持續增強的現實卻是鼓舞人心的,PHP社區用實際行動給予各種質疑強有力的回擊。

快捷高效

PHP的內核是C語言編寫的基礎好效率高,可以用C語言開發高性能的擴展組件;PHP的核心包含了數量超過1000的內置函數,功能應有盡有很全面,開箱即用程序代碼簡潔; PHP數組支持動態擴容,支持以數字、字元串或者混合鍵名的關聯數組,能大幅提高開發效率; PHP是一門弱類型語言,程序編譯通過率高,相對其他強類型語言開發效率快;PHP天然熱部署,在php-fpm運行模式下代碼文件覆蓋即完成熱部署;PHP經過20多年的發展,在互聯網上可以搜到海量的參考資料供參考學習。

性能提升

PHP版本越高它的整體性能越高,根據官方介紹,PHP7.0.0 對比PHP5.6性能就提升了2倍,PHP7.4已經比PHP7.0快了約30%,PHP8.0在性能上又相對PHP7.4大約改進了10%。PHP 8.0 引入了 JIT編譯器特性,同時加入多種新的語言功能,例如命名參數、聯合類型、註解、Constructor Property Promotion、match 表達式、nullsafe 運算符以及對類型系統、錯誤處理和一致性的改進。PHP擁有自己的核心開發團隊,保持5年發布一個大版本、1個月發布2個小版本的頻率,最新的版本是PHP8.08 。

跨平台

每個平台都有對應的php解釋器版本,指針對不同平台均編譯出目標平台的二進制碼(PHP解釋器),php開發的程序可以不經修改運行在windows、linux、unix等多個操作系統上。

常駐內存

php-cli模式下可以實現程序常駐內存,各種變數和資料庫連接都能長久保存在內存實現資源復用,比較常用的做法是結合swoole 組件編寫cli框架。

頁面生命周期

在php-fpm模式下,所有的變數都是頁面級的,無論是全局變數還是類的靜態成員,都會在頁面執行完畢後被清空,對程序員水平要求低,佔用內存非常少,特別適合中小型系統的開發。

運行機制:

PHP常見的運行模式有2種,分別是php-fpm 和php-cli 。當PHP 選擇運行在php-fpm模式下,所有的變數都是頁面級的,無論是全局變數還是類的靜態成員,都會在頁面執行完畢後被清空。運行在php-cli模式下可以實現程序常駐內存,各種變數和資料庫連接都能長久保存在內存 實現資源復用,性能可以得到很大的提升,php-cli開發比較復雜能但是能夠獲取更高的性能,對開發者的要求比較高需要比較高的開發水平,比較常用的模式是結合swoole 組件編寫cli框架,各種變數能保存在跨進程的高性能共享內存 Table ,可以開發出支持熱啟動的php-cli可靠各類應用系統。

php-fpm在PHP 5.3.3 版本成為了官方正式組件(2010-07-22),它提供了穩定可靠的進程管理服務,進程不足時候可以智能擴充數量,閑置時候可以自動回收銷毀多餘的進程,同時它對程序的容錯能力很強大運行非常穩定,可以應付企業級的開發需求。php-fpm友好的完成了使用HTTP/HTTPS等TCP/IP互聯網協議下進行的用戶的輸入輸出,頁面級生命周期各種資源用完即釋放,不存在內存泄漏的問題。php-fpm也提供有一些常駐內存的技術支持,例如PHP 7.4引入的opcache.preload也能實現局部的PHP類和函數的常駐內存,不過這個方法不夠靈活,和伺服器配置捆綁的太死了。

php-cli因為能實現各類資源的常駐內存,所以可以資源復用,更高效完成多進程編程和非同步編程,可以開發出負載能力更高的應用系統。但是相對php-fpm的簡單編程開發,開發者要注意很多的事項和需要做很多附加的控制器開發,否則就無法實現期待中的高性能。

首先開發者需要去實現可靠的進程管理服務,保證系統進程遇到各類錯誤退出運行後能夠自動創建新的進程,只有這樣才能保證後續的服務請求有足夠空閑進程可分配。每個業務代碼段都要做異常處理,讓進程遇到非致命錯誤時候不會退出,因為進程重啟意味程序和各類資源需要再次載入,這個過程性能消耗不小,所以只有進程穩定運行了常駐內存才有意義。

其次因為常駐內存,編寫的新的程序必須重啟服務才能生效,這一點習慣了fpm模式的開發者會感到比較陌生。另外開發者需要手工釋放內存,否則系統長時間運行後會出現內存泄露。同時在cli模式下,我們不能像fpm里直接用 $_SERVER、$_POST、$_GET、$_COOKI和$_FILES 進行編程工作,需要自己去解析各種互聯網通訊協議完成用戶的輸入輸出。要實現多進程編程利用多核CPU計算,還有學習使用pcntl和posix編程,這里涉及到了非同步編程邏輯,這塊難度還是比較大的。比較常用的模式是結合swoole 組件編寫cli框架。

PHP是一個活躍的社區開發語言,有專業的核心開發團隊在持續不斷的迭代,最近一個版本就是PHP 8.0.8 引入了很多的新特性。

語言參考:

內置函數

PHP 有很多標準的函數和結構。還有一些函數需要和特定的擴展模塊一起編譯,否則在使用它們的時候就會得到一個致命的「未定義函數」錯誤。例如,要使用 image 函數中的 imagecreatetrue,需要在編譯 PHP 的時候加上 GD 的支持。或者要使用 mysqli_connect函數,就需要在編譯 PHP 的時候加上 MySQLi 支持。有很多核心函數已包含在每個版本的 PHP 中如字元串和變數函數。調用 phpinfo或者 get_loaded_extensions可以得知 PHP 載入了那些擴展庫。同時還應該注意,很多擴展庫默認就是有效的。

靜態網站與動態網站的區別

靜態網站:web1.0 時代

動態網站:web2.0 時代

靜態網站特點:

1、網頁內容一經發布到網站伺服器,無論是否有用戶訪問,每個靜態頁面的內容都是保存在網站伺服器上的。也就是說,靜態網頁是實實在在保存在伺服器上的文件,每個網頁都是一個獨立的文件。

2、靜態網頁的內容相對穩定,因此容易被搜索引擎檢索。

3、 靜態網頁沒有資料庫的支持,在網站製作和維護方面工作量較大,因此當網站信息量很大時完全依靠靜態網頁製作方式比較困難。

4、靜態網頁的交互性較差,在功能方面有較大的限制。


② php面向對象全攻略 (三)特殊的引用「$this」的使用

7.特殊的引用「$this」的使用
現在我們知道了如何訪問對象中的成員,是通過「對象->成員」的方式訪問的,這是在對
象的外部去訪問對象中成員的形式,那麼如果我想在對象的內部,讓對象里的方法訪問本對
象的屬性,或是對象中的方法去調用本對象的其它方法這時我們怎麼辦?因為對象裡面的所
有的成員都要用對象來調用,包括對象的內部成員之間的調用,所以在PHP
裡面給我提供了
一個本對象的引用$this,每個對象裡面都有一個對象的引用$this
來代表這個對象,完成對象
內部成員的調用,this
的本意就是「這個」的意思,上面的實例裡面,我們實例化三個實例
對象$P1、$P2、$P3,這三個對象裡面各自存在一個$this
分別代表對象$p1、$p2、$p3。
通過上圖我們可以看到,$this
就是對象內部代表這個對象的引用,在對象內部和調用本
對象的成員和對象外部調用對象的成員所使用的方式是一樣的。
$this->屬性$this->name;
$this->age;
$this->sex;
$this->方法$this->say();
$this->run();
修改一下上面的實例,讓每個人都說出自己的名字,性別和年齡:
代碼片段
復制代碼
代碼如下:
<?php
class
Person{
//下面是人的成員屬性
var
$name;
//人的名字
var
$sex;
//人的性別
var
$age;
//人的年齡
//下面是人的成員方法
function
say(){//這個人可以說話的方法
echo
"我的名字叫:".$this->name."
性別:".$this->sex."
我的年齡是:".$this->age."<br>";
}
function
run(){
//這個人可以走路的方法
echo
"這個人在走路";
}
}
$p1=new
Person();
//創建實例對象$p1
$p2=new
Person();
//創建實例對象$p2
$p3=new
Person();
//創建實例對象$p3
//下面三行是給$p1對象屬性賦值
$p1->name="張三";
$p1->sex="男";
$p1->age=20;
//下面訪問$p1對象中的說話方法
$p1->say();
//下面三行是給$p2對象屬性賦值
$p2->name="李四";
$p2->sex="女";
$p2->age=30;
//下面訪問$p2對象中的說話方法
$p2->say();
//下面三行是給$p3對象屬性賦值
$p3->name="王五";
$p3->sex="男";
$p3->age=40;
//下面訪問$p3對象中的說話方法
$p3->say();
?>
輸出結果
我的名字叫:張三性別:男我的年齡是:20
我的名字叫:李四性別:女我的年齡是:30
我的名字叫:王五性別:男我的年齡是:40
分析一下這個方法:
代碼片段
function
say(){
//這個人可以說話的方法
echo
"我的名字叫:".$this->name."
性別:".$this->sex."
我的年齡是:".$this->age."<br>";
}
在$p1、$p2
和$p3
這三個對象中都有say()這個方法,$this
分別代表這三個對象,調用相應的屬性,列印出屬性的值,這就是在對象內部訪問對象屬性的方式,如果相在say()這個方
法里調用run()這個方法也是可以的,在say()這個方法中使用$this->run()的方式來完成調用。

③ php面向對象和面向過程的區別

1.面向過程就是你把代碼封裝成子過程或函數(procere),然後依次去做一件事情;

2.面向對象就是你把要做的事情抽象成對象,然後告訴具體的那一個對象去做。

3.面向對象三大特性(封裝,繼承,多態)使得在做復雜的事情的時候效率和正確率得到保證。

4.在實際的編程中「面向對象」和「面向過程」兩種開發思想一定是同時都用到了的,現在宣傳最多的「面向對象」實際上是以面向對象為主題,面向過程為輔助,往往過分了誇大其作用。

④ 在做PHP項目時,該什麼時候使用面向對象,什麼時候使用面向過程呢

其實全部用自定義函數同樣可以滿足項目需求,使用面向對象只不過是為了讓程序思路更清晰,在多人合作開發的時候會便捷。

比如,針對用戶(注冊,審核,資料等等關於用戶的部分)建立 class User{}
這裡面集成了各種對用戶操作的函數,你的同事或者協同開發的夥伴,直接可以用這個User對象進行他在其他功能里的應用,比如需要調用某個用戶的資料 $User->get_profile($uid); 這樣思路就很清晰了,不然的話,他需要找到你的函數庫,而且有可能東一個函數西一個函數,就浪費很多時間。

閱讀全文

與php面向對象視頻相關的資料

熱點內容
麒麟操作系統反編譯 瀏覽:16
sqlpdf教程 瀏覽:243
求生之路騰訊雲伺服器 瀏覽:999
蛋播星球app蘋果怎麼下載 瀏覽:677
粒子群演算法面臨的問題 瀏覽:665
怎麼更改安卓的鎖屏 瀏覽:537
壓縮機並聯駐車空調 瀏覽:624
pr導出視頻編譯未知錯誤 瀏覽:869
蜂窩移動伺服器為什麼是六邊 瀏覽:376
tiktok安卓怎麼連國內網 瀏覽:462
安卓手機抖音拍視頻怎麼增高 瀏覽:454
pdf下載怎麼轉換格式 瀏覽:256
漢諾塔數據結構及演算法設計 瀏覽:706
安卓手機微信如何添加新的表情包 瀏覽:824
哈爾濱銀行app怎麼改 瀏覽:735
3615簡便演算法 瀏覽:899
安卓手機桌面小組件怎麼弄 瀏覽:34
ca伺服器如何延長證書有效期 瀏覽:528
百度安卓平板怎麼下載 瀏覽:208
怎樣互相發文件夾 瀏覽:942