【问题标题】:how we can set many setters on class php [duplicate]我们如何在类 php 上设置许多设置器 [重复]
【发布时间】:2019-06-03 12:53:11
【问题描述】:

我正在尝试在我的 php 代码上得到这个结果,我需要实现

class person 

    $person = new person();

    $person->setFirstName('name')
        ->setLastName('lastname')
        ->setEmail('email@example.com')
    ;

    echo $user;

然后我得到了这个结果 将产生一个字符串

"姓名姓氏"

是我的类实现的示例,但它不起作用我需要实现三个设置器 setFirstName、setLastName、setEmail 才能得到上面的结果代码。

class User {
  private $FirstName;
  private $LastName;
  private $Email;
    public function getFirstName() {
        return $this->FirstName;
    }

    public function setFirstName($x) {
        $this->FirstName = $x;
    }

    public function getLastName() {
        return $this->LastName;
    }

    public function setLastName($x) {
        $this->LastName = $x;
    }

    public function getEmail() {
        return $this->Email;
    }

    public function setEmail($x ) {
        $this->Email = $x;
    }
}

【问题讨论】:

  • $user 是从哪里来的,你在哪里尝试过?也许manual 会帮助您了解如何做到这一点。
  • 你可以查看stackoverflow.com/questions/3724112/php-method-chaining了解方法链(提示:在类中创建将返回$this的函数),然后你也可以创建一个get函数来获取其中的一个或全部属性。

标签: php


【解决方案1】:

你的问题很难理解。无论如何,这段代码将为您提供一个 Person 类并对其进行测试。 输出:“姓名姓氏

代码:

    class Person
    {
        private $firstname, $lastname, $email;

        function setFirstName($firstname) {
            $this->firstname = $firstname;
            return $this;
        }

        function setLastName($lastname) {
            $this->lastname = $lastname;
            return $this;
        }

        function setEmail($email) {
            $this->email = $email;
            return $this;
        }

        function __toString() {
            return $this->firstname. ' ' .$this->lastname. ' <' . $this->email .'>';
        }
    }

    $person = new Person();

    $person->setFirstName('name')
        ->setLastName('lastname')
        ->setEmail('email@example.com');

    echo $person;

希望这是您搜索的内容!我认为你需要的是>和<

【讨论】:

  • public function __toString() {echo $person;
  • 谢谢我的朋友是我需要的:)
【解决方案2】:

如果我正确理解您的答案,您需要以下内容:

echo $person->getFirstName() . ' ' . $person->getLastName() . ' ' . $person->getEmail();

导致: Samir Guiderk Samir@example.com>

【讨论】:

  • 他要你为他写代码,即class Person { ... }不要回答离题的问题。
猜你喜欢
  • 1970-01-01
  • 2018-10-27
  • 1970-01-01
  • 1970-01-01
  • 2019-02-28
  • 2020-10-16
  • 1970-01-01
  • 2022-01-06
  • 2018-02-10
相关资源
最近更新 更多