【问题标题】:PHP from associative array to User ClassPHP从关联数组到用户类
【发布时间】:2017-03-31 12:42:12
【问题描述】:


我知道我可以将关联数组强制转换为对象:

$user = (object) $_POST["user"];

我有一个类 User,它有方法 getName、getEmail 等。 如果我这样做了

$user = (object) $_POST["user"];
$user->getName();

它给出了这个错误

Fatal error: Call to undefined method stdClass::getName()

我可以这样做吗?

$user = (user) $_POST["user"];

谢谢

【问题讨论】:

  • 您好!可以发布 $_POST 的转储吗?您的用户类的名称是什么?
  • 您不能转换为除 stdClass 之外的任何类(对象)。 @Shogunivar 的回答对我来说似乎是要走的路。

标签: php arrays object associative-array


【解决方案1】:

不直接。您可以做的是创建一个新用户并在用户类的构造函数中设置所有信息

Class User {
   public $name;
   public $otherData;

   function __construct ($userdata) {
      $name = $userdata['name'];
      $otherData = $userdata['otherData'];
   }

   function GetName() {
      return $name;
   }

}

那么你可以这样称呼它: $user = new User($_POST["user"]);

【讨论】:

    【解决方案2】:

    你可以使用这样的东西

    <?php
      Class User{
          protected $name;
          public function setName($name){
             $this->name = $name;
          }
          public function getName(){
             return $this->name;
          }
      }
    $arr = ["name"=>"Niklesh"];
    $abc = new User;
    $abc->setName($arr["name"]);
    var_dump($abc);
    var_dump($abc->getName());
    ?>
    

    演示:https://eval.in/765496

    【讨论】:

      猜你喜欢
      • 2011-03-05
      • 2015-07-16
      • 2012-12-22
      • 2012-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-30
      • 2019-05-12
      相关资源
      最近更新 更多