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ù)制
實戰(zhàn)案例
在實際應(yīng)用中,函數(shù)重載和重寫可以用于創(chuàng)建可擴(kuò)展的框架、代碼復(fù)用和提高可讀性。例如,可以使用函數(shù)重載來處理不同類型的數(shù)據(jù),或提供具有不同功能的函數(shù)變體。重寫允許子類修改父類中定義的行為,從而實現(xiàn)多態(tài)性和代碼的可維護(hù)性。






