将类变量作为PHP函数中的默认参数

问题描述 投票:4回答:3

我想在我的类中有一个具有默认参数的函数,以便在需要时可以省略该参数。我希望默认值是存储在类中的变量;

您好,为什么在Aptana中显示错误消息?

class property{
    private $id;
    function load_data($id = $this->id){
        //...blah blah blah
    }
}

我应该改为使用

class property{
    static $id;
    function load_data($id = self::id){
        //...blah blah blah
    }
}

感谢您的帮助

php function optional-parameters
3个回答
9
投票

我很确定你不能做你想要的。相反,您应该只检查参数是否具有值,如果没有,则分配默认值,即对象属性。

class property{
    private $id;
    function load_data($id = null){
        $id = (is_null($id)) ? $this->id : $id;
    }
}

2
投票

您可以这样做:

class property
{
    private $id;

    function load_data($id = null){

        if (is_null($id)) {
            $id = $this->id;
        }

        //...blah blah blah
    }
}

0
投票

我知道这是一个老问题,但是我想到了它来寻找相同的事物,答案是肯定的,只要您将其定义为常量,就可以做到:

class property{
    const $id;
    function load_data($id = self::id){
        //...blah blah blah
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.