我是新来的PHP OOP
我有这个构造器

protected $path='default';

function __construct($var1, $var2 ..){
        $this->var1=$var1;
        $this->var2=$var2;
    }

$obj = MyClass($var1='www')

我希望如果我创建了object并且没有传递任何参数,那么我将得到具有空值的对象。
但是如果在构造函数中像上面这样提到属性,那么对象应该设置这些属性。
目前,如果我用参数定义构造器,但不提供任何参数,则会得到错误
是的。

最佳答案

您可以在php中使用func_get_args()

<?php
class foo
{

    private $arrParams;

    function __construct()
    {
        if (func_num_args() != 0) {
            $this->arrParams = $this->setValues(func_get_args());

        }
    }

    public function setValues($params)
    {
        return $params;
    }

    public function dispParams()
    {
        print_r($this->arrParams);
    }

    public function retVal($var)
    {
        return $this->arrParams[$var];
    }

}

$foo1 = new Foo(3, 45, 64, 34);
$foo1->dispParams();

OUTPUT :
Array
(
    [0] => 3
    [1] => 45
    [2] => 64
    [3] => 34
)

从数组中获取相应的值…你可以打电话给我
 $foo1->retVal(2); // Prints you 64

09-11 19:44
查看更多