PHP 从关联数组到用户 Class

PHP from associative array to User Class


我知道我可以将关联数组转换为对象来执行此操作:

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

我有一个 class 用户,它有方法 getName、getEmail 等。 如果我这样做

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

它给出了这个错误

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

我可以做这样的事情吗?

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

谢谢

你可以使用这样的东西

<?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

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

Class User {
   public $name;
   public $otherData;

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

   function GetName() {
      return $name;
   }

}

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