php中支持函數(shù)重載和重寫,可創(chuàng)建靈活可重用的代碼。函數(shù)重載:允許創(chuàng)建同名函數(shù),但參數(shù)不同,根據(jù)參數(shù)匹配情況調(diào)用最合適的函數(shù)。函數(shù)重寫:允許子類定義同名函數(shù),覆蓋父類方法,子類方法調(diào)用時將覆蓋父類方法。
PHP 中的函數(shù)重載和重寫
PHP 支持函數(shù)重載和重寫,這兩種技術(shù)可用于創(chuàng)建靈活、可重用的代碼。
函數(shù)重載
函數(shù)重載允許在同一個作用域中創(chuàng)建具有相同名稱但參數(shù)不同的多個函數(shù)。在運(yùn)行時,將調(diào)用具有最匹配參數(shù)集的函數(shù)。
function sum(int $a, int $b) { return $a + $b; } function sum(float $a, float $b) { return $a + $b; } // 調(diào)用重載的函數(shù) echo sum(1, 2); // 輸出 3 echo sum(1.5, 2.5); // 輸出 4.0
登錄后復(fù)制
函數(shù)重寫
函數(shù)重寫允許在子類中定義與父類中同名函數(shù)的函數(shù)。當(dāng)子類的方法被調(diào)用時,它將覆蓋父類的方法。
class ParentClass { public function sayHello() { echo "Hello from parent class"; } } class ChildClass extends ParentClass { public function sayHello() { echo "Hello from child class"; } } // 創(chuàng)建子類對象并調(diào)用其方法 $child = new ChildClass(); $child->sayHello(); // 輸出 "Hello from child class"
登錄后復(fù)制
實(shí)戰(zhàn)案例
在實(shí)際應(yīng)用中,函數(shù)重載和重寫可以用于創(chuàng)建可擴(kuò)展的框架、代碼復(fù)用和提高可讀性。例如,可以使用函數(shù)重載來處理不同類型的數(shù)據(jù),或提供具有不同功能的函數(shù)變體。重寫允許子類修改父類中定義的行為,從而實(shí)現(xiàn)多態(tài)性和代碼的可維護(hù)性。