首页 > 解决方案 > 在 PHP 中调用扩展可变参数函数的父方法?

问题描述

假设我们有

class TestClass1 
{
    public function varFunc(string ...$str)
    {
    }
}

class TestClass2 extends TestClass1
{
    public function varFunc(string ...$str)
    {
        /* How do we perform this call? */
        return parent::varFunc($str);
    }
}

调用 TestClass2->varFunc() 将不起作用,因为 $str 作为数组传递给 TestClass1->varFunc() 而不是一系列字符串。有什么办法可以使这项工作?

标签: php

解决方案


你试过...$str吗?

<?php

class TestClass1 
{
    public function varFunc(string ...$str)
    {   
        print_r($str);
    }   
}

class TestClass2 extends TestClass1
{
    public function varFunc(string ...$str)
    {   
        /* How do we perform this call? */
        return parent::varFunc(...$str);                                                                                                                                        
    }   
}

$a = new TestClass2();
$a->varFunc('asd');

$ php test.php 
Array
(
    [0] => asd
)
Array
(
    [0] => asd
)

推荐阅读