① php和c,c++的區別是什麼
的區別:
一個有protected成員變數(假設為i)的類型Base,他的子類Derived直接繼承自Base,同時Derived有一個成員函數func,他的參數是Base類型的,這個函數可以訪問Base對象的protecte的成員嗎?在C++中不可以,而在PHP中可以。
關於重載:
PHP中不支持C++中的重載,重新定義個函數(不管是參數相同還是不同,都會導致重復定義錯誤)。PHP有自己的重載方法,而且比C++中的更廣泛,他不僅可以重載函數(通過使運散用__call()方法),還可以重載成員變數(通過使用__get()和__set())。而C++中只能對函數進行重載,而且重載的方法只有:不同的參數類型,不同的函數修飾符(const)。
關於abstract和interface
PHP中配悄余有這兩個修飾符,因為PHP不支持對一個普通類的多繼承,因此interface用於實現多繼承。Abstract類在C++中也存在,只是實現方培滾式不一樣,C++中使用pure virtual函數來表明這個類是抽象類,不能單獨被實例化。而PHP中不僅可以使用函數的修飾符abstract(另外class前也必須標明abstract)來標明這個意思,也可以只使用abstract修飾符修飾class更直接的表明他是抽象類。另外, C++中的pure virtual函數不受訪問類型的限制,不管是什麼訪問類型,都會被看作是public;而php中的abstract函數不能被聲明成private,僅此而已。
多態
因為PHP是弱類型語言,所以他的多態性到處都有體現,導致他的多態性不像C++中那麼明顯。比如,在PHP中基類的函數可以看作全是virtual的,因此它不需要加任何修飾符,子類中和基類同名的函數都會被動態調用,而C++不一樣,如果基類中的這個函數沒有加virtual修飾符,子類中的那個同名函數就不會被動態調用,只能靜態調用了。
操作符重載
PHP中不存在,而C++存在。重點在==操作符,在PHP中他可以運用在任何類型上,即使這個類型沒有(像C++中一樣)寫自己的==重載函數。PHP中對於對象的比較,==表示兩個對象的屬性和值都一樣,而且類型也一樣;PHP也存在一個===操作符,表示他們引用了同一個對象,這跟java中很像吧。
final關鍵字
PHP中存在這個關鍵字,表示這個函數不能被重寫(如果他用來修飾函數),或者類不能被繼承(如果用類修飾class)。而C++中沒有這個關鍵字,也無法模擬出那個效果。
對象賦值和拷貝
C++中的拷貝或者賦值大致有這三種方式。
一種是指針的賦值,即p1 = &obj,相當於PHP和java中的賦值操作;
另一種是memberwise assignment,也就是在obj1 = obj2時發生的事情,默認情況下執行淺度拷貝,和PHP中clone的效果一樣。他可以通過重載賦值拷貝操作來執行你的深度拷貝或者其他自定義的拷貝,這就相當於PHP中的__clone()成員函數;
第三種是memberwise initialization,也就是在參數傳遞時,傳遞返回值時或者包含對象的容器初始化的時候自動運行的,你可以通過自己定義拷貝構造函數來控制它的效果。
拷貝構造函數在PHP中幾乎用不到,因為他的傳遞是完全按引用傳遞,而不是對象的直接拷貝。
② 學習php比c語言難嗎
PHP是弱類型解釋型語言,對類型不敏感,入門簡單,基礎知識很快就能學習好。
C 是典型的強類型語言,變數類型,無法被隨意更改,所以難度較php稍大些。
PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標准通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
③ php或者c語言哪個入門容易
PHP語言和C語言自身的語法難度都不算高,但是對於計算機基礎比較薄弱的人來說,PHP語言要更容易一些,原因有以下幾點:
第一:PHP語法簡潔。PHP的語法設計非常優秀,在保證可讀性的前提下,代碼結構也比較簡潔,即使沒有任何編程基礎的人,也能夠比較容易的理解代碼的含義。雖然C語言的語法結構也算不上復雜,但是C語言與PHP相比,規則性要更強一些,需要在學習的初期建立一個編程思想。
第二:PHP語法概念易於理解。學習編程語言的一個難點在於如何建立抽象概念的畫面感,相對於C語言來說,PHP更容易建立起概念的畫面感。PHP屬於腳本式語言,在語法操作上會屏蔽很多底層的內容,包括對於硬體的操作,而C語言則不可避免的需要進行一定的底層操作,這對於計算機基礎薄弱的人來說,是一個難點。
第三:PHP資源整合簡單。PHP與資料庫等外部資源的整合是相對比較簡單的,而C語言與各種資源的整合要稍微麻煩一些。可以這么理解,PHP設計理念主要是利用資源,而C語言的設計理念更偏重於管理資源,這就是二者的重要區別。
因此,從學習的角度出發,如果計算機基礎比較薄弱,那麼PHP語言更容易學習一些。而對於有一定計算機基礎的人來說,學習C語言也並不難。
最後,C語言和PHP語言都是非常優秀的編程語言,這兩門語言在IT領域都有廣泛的應用。PHP語言主要應用在Web開發領域,而C語言則在操作系統開發和嵌入式開發領域有更多的應用,隨著Web和物聯網的不斷發展,PHP和C語言未來的應用前景也是比較廣闊的,從這個角度來說,這兩門語言都是學習者不錯的選擇。