PHP中索引數組如何給對象賦值?

來源:互聯網
上載者:User
關鍵字 php
現有對象定義如下:

class User{    public $name;    public $age;    public $sex;    public $info;    public $school;    public $salary;}

現有索引數組如下:

$user = [    'name' => 'zhangsan',    'age' => 18,    'sex' => 1,    'school' => 'sysu',];

問題是,如何用這個數組給對象賦值,能不能用foreach進行賦值啊?現在我只會下面的實現,但是被說這個方法不好,應該用foreach,但是不知道怎麼用?

$user1 = new User();if(isset($user['name'])) $user1->name = $user['name'];if(isset($user['age'])) $user1->age = $user['age'];if(isset($user['sex'])) $user1->sex = $user['sex'];if(isset($user['info'])) $user1->info = $user['info'];if(isset($user['school'])) $user1->school = $user['school'];if(isset($user['salary'])) $user1->salary = $user['salary'];

回複內容:

現有對象定義如下:

class User{    public $name;    public $age;    public $sex;    public $info;    public $school;    public $salary;}

現有索引數組如下:

$user = [    'name' => 'zhangsan',    'age' => 18,    'sex' => 1,    'school' => 'sysu',];

問題是,如何用這個數組給對象賦值,能不能用foreach進行賦值啊?現在我只會下面的實現,但是被說這個方法不好,應該用foreach,但是不知道怎麼用?

$user1 = new User();if(isset($user['name'])) $user1->name = $user['name'];if(isset($user['age'])) $user1->age = $user['age'];if(isset($user['sex'])) $user1->sex = $user['sex'];if(isset($user['info'])) $user1->info = $user['info'];if(isset($user['school'])) $user1->school = $user['school'];if(isset($user['salary'])) $user1->salary = $user['salary'];

foreach($user as $prop => $val) {    $user1->{$prop} = $val;}

    $userObj = new User();    foreach($user as $key => $value){        if(property_exists($userObj,$key)){            $userObj->$key = $value        }    }

$user = [    'name' => 'zhangsan',    'age' => 18,    'sex' => 1,    'school' => 'sysu',];$userobj = (object)$user
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.