gpt4 book ai didi

php - Php是否支持方法重载

转载 作者:可可西里 更新时间:2023-11-01 13:43:02 26 4
gpt4 key购买 nike

php是否支持方法重载。在尝试下面的代码时,它表明它支持方法重载。任何观点

class test
{
public test($data1)
{
echo $data1;
}
}

class test1 extends test
{
public test($data1,$data2)
{
echo $data1.' '.$data2;
}
}

$obj = new test1();
$obj->test('hello','world');

因为我重载了它给出的输出为“hello world”的方法。上面的代码片段表明 php 支持方法重载。所以我的问题是 php 是否支持方法重载。

最佳答案

你应该区分method overriding (你的例子)和method overloading

下面是一个简单的例子,说明如何使用 __call 魔术方法在 PHP 中实现方法重载:

class test{
public function __call($name, $arguments)
{
if ($name === 'test'){
if(count($arguments) === 1 ){
return $this->test1($arguments[0]);
}
if(count($arguments) === 2){
return $this->test2($arguments[0], $arguments[1]);
}
}
}

private function test1($data1)
{
echo $data1;
}

private function test2($data1,$data2)
{
echo $data1.' '.$data2;
}
}

$test = new test();
$test->test('one argument'); //echoes "one argument"
$test->test('two','arguments'); //echoes "two arguments"

关于php - Php是否支持方法重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17316095/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com