OOP:PHP 中的 a->user->chk 和 a->pwd->chk?我该如何定义?

发布于 2024-11-19 09:59:31 字数 620 浏览 2 评论 0原文

可能的重复:
PHP 方法链接?

我有一个创建用户的函数,比如里面的 cruuser类并设置密码,如setpw

我想创建一个验证函数来检查用户名和密码,我想像这样使用它:

$a = new class abc();
$a->cruser->chk();
$a->setpw->chk();

需要 2 个不同的函数或相同的函数可以吗? 它是如此优雅,我该如何定义它?

class abc {
    function cruser { }
    function setpw {}
    //??? - need to define here chk or to different class?
}

适用于 PHP 5.2/5.3。

我怎样才能实现这个目标,或者有更好的方法吗?

Possible Duplicate:
PHP method chaining?

I had a function for create user, like cruser inside class and set password like setpw.

I want to create a validate function to check the username and password and I want use it like this:

$a = new class abc();
$a->cruser->chk();
$a->setpw->chk();

Need 2 different function or same can do?
It's so elegant, how can I define this?

class abc {
    function cruser { }
    function setpw {}
    //??? - need to define here chk or to different class?
}

for PHP 5.2/5.3.

How can I achieve this, or is there a better way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

℡Ms空城旧梦 2024-11-26 09:59:31

这称为方法链。您的方法需要返回被调用对象的实例。

class abc {
    protected $_username;
    protected $_password;
    public function cruser($username)
    {
        // Run your CREATE USER code here...
        // e.g., $this->_username = $username;
        return $this;
    }
    public function setpw($password)
    {
        // Run your SET PASSWORD code here...
        // e.g., $this->_password = $password;
        return $this;
    }
    public function validate()
    {
        // Validate your user / password here by manipulating $this->_username and $this->_password
    }
}

要设置用户名和密码并进行验证,您可以这样调用:

$a = new abc;
$a->cruser('user')->setpw('pass')->validate();

This is called method chaining. Your methods need to return the instance of the object being called.

class abc {
    protected $_username;
    protected $_password;
    public function cruser($username)
    {
        // Run your CREATE USER code here...
        // e.g., $this->_username = $username;
        return $this;
    }
    public function setpw($password)
    {
        // Run your SET PASSWORD code here...
        // e.g., $this->_password = $password;
        return $this;
    }
    public function validate()
    {
        // Validate your user / password here by manipulating $this->_username and $this->_password
    }
}

To set a username and password and validate, you'd call like this:

$a = new abc;
$a->cruser('user')->setpw('pass')->validate();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文