php中方法重载,什么是PHP中的方法重载?

方法重载是面向对象编程的概念,它有助于轻松地构建复合应用程序。函数重载或方法重载是一项功能,它允许创建多个名称相似的方法,这些方法在其作为参数接受的输入参数的类型上彼此不同。

上面的概念对于其他编程语言来说很好,它被称为静态多态,即方法重载。

示例

让我们通过一个例子来理解。<?php

class machine {

function doTask($var1){

return $var1;

}

function doTask($var1,$var2){

return $var1 * $var1 ;

}

}

$task1 = new machine();

$task1->doTask(5,10);

?>

输出:Error

说明:

这将产生错误,因为php会说您已两次声明此方法。

但是其他编程语言说,doTask($var1)和doTask($var1,$var2)是重载方法。要调用后者,必须传递两个参数,而前者只需要一个参数。

因此,这种行为(即在编码时决定调用函数的决定)被称为静态多态(即方法重载)。

让我们讨论如何实现与PHP5相关的方法重载。在PHP的情况下,我们必须利用PHP的魔术方法__call()来实现方法重载。

在PHP中,重载意味着方法的行为根据输入参数动态变化。在本教程中,我们将理解这些看法。让我们讨论__call()方法。

__呼叫():

如果某个类执行__call(),则如果使用不存在的方法调用该类的对象,则将调用__call()而不是该方法。

示例

让我们通过一个例子来了解方法重载。<?php

class Shape {

const PI = 3.142 ;

function __call($name,$arg){

if($name == 'area')

switch(count($arg)){

case 0 : return 0 ;

case 1 : return self::PI * $arg[0] ;

case 2 : return $arg[0] * $arg[1];

}

}

}

$circle = new Shape();

echo $circle->area(3);

$rect = new Shape();

echo $rect->area(8,6);

?>

输出:9.426

48

说明:

这里的area()方法是动态创建的,并在魔术方法__call()的帮助下执行,其行为根据作为对象的参数传递而变化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值