本文目錄一覽:
- 1、PHP是什麼
- 2、php中重載是多太的另一種實現方式,本人貼出原書實力代碼,請求解答,實例代碼一運行就報錯
- 3、PHP重載 有什麼用
- 4、php和c,c++的區別是什麼?
- 5、PHP真的能算是面向對象的語言嗎?
- 6、PHP重載到底是什麼意思
PHP是什麼
PHP(PHP:Hypertext Preprocessor遞歸縮寫)中文名字是:「超文本預處理器」,是一種廣泛使用的通用開源腳本語言,適合於Web網站開發,它可以嵌入HTML中。編程范型是面向對象、命令式編程的,截止2019年4月24日為止,最新的版本是PHP 5.6.0(28 Aug 2014),其操作的系統為windows/linux/Mac跨平台。
擴展資料:
PHP的功能
1、創建博客
使用PHP創建博客wordpres,可以輕鬆創建博客。即使您不具備PHP知識,也可以使用它,但如果您可以編寫PHP,則可以自定義您的博客並創建主題。
2、網站開發
60%全球互聯網網站採用php技術,80%國內互聯網網站使用php開發。這些網站包含購物網站,政府企業網站,QQ空間,論壇博客等等。
3、移動端微網站開發以及小程序
移動設備的普及為移動互聯網的快速發展奠定了基礎!手機淘寶網站,手機京東網站等等, 微信公眾號應用中的微網站。
參考資料來源:百度百科——PHP
php中重載是多太的另一種實現方式,本人貼出原書實力代碼,請求解答,實例代碼一運行就報錯
首先你這個報錯是因為一個類定義里不能直接寫表達式,必須放在方法裡面。可能是你不小心把大括弧的結尾放錯了地方。
你這個不能算什麼多態,而是php的魔術方法__Call ,當調用一個類中不存在的方法時,會調用這個方法。
把代碼做了改寫:
?php
header(“content-type:text/html;charset=utf-8”);
class C{
function __call($name,$num){
echo “方法的名稱:”.$name.”br \”;
echo “方法參數的個數:”.count($num).”br \”;
if(count($num)==1){
echo $this-list1();
}
if (count($num)==2){
echo $this-list2();
}
}
public function list1(){
return “這是list1函數br \”;
}
public function list2(){
return “這是list2函數br \”;
}
}
$m=new C();
$m-list(1);
$m-list(1,2);
PHP重載 有什麼用
用到的情況還是很多的 比方說 你在做底層開發時 經常會創建一些共有的 變數 就要載入這些數據 這是就得用這些函數了
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真的能算是面向對象的語言嗎?
面向對象三大特性:封裝,繼承,多態
php可以封裝對象,也可以繼承,同樣可以實現多態
多態是指指出重寫和重載,php子類可以重寫父類的方法,也可以通過方法的參數數量不同來重載方法,我覺得是面向對象語言
PHP重載到底是什麼意思
針對不同參數形式寫出的多個功能類似名字一樣的函數。
比如
sort(int a,int b){}
sort(double c,double d,double f){}
這兩個函數就是重載關係。表示了功能類似名字一樣的兩個函數,只是參數形式不一樣
原創文章,作者:ZTDAN,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/330081.html