现有对象定义如下:
1 2 3 4 5 6 7 8 9 | class User
{
public $name ;
public $age ;
public $sex ;
public $info ;
public $school ;
public $salary ;
}
|
로그인 후 복사
로그인 후 복사
现有索引数组如下:
1 2 3 4 5 6 | $user = [
'name' => 'zhangsan' ,
'age' => 18,
'sex' => 1,
'school' => 'sysu' ,
];
|
로그인 후 복사
로그인 후 복사
问题是,如何用这个数组给对象赋值,能不能用foreach进行赋值啊?现在我只会下面的实现,但是被说这个方法不好,应该用foreach,但是不知道怎么用?
1 2 3 4 5 6 7 | $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' ];
|
로그인 후 복사
로그인 후 복사
回复内容:
现有对象定义如下:
1 2 3 4 5 6 7 8 9 | class User
{
public $name ;
public $age ;
public $sex ;
public $info ;
public $school ;
public $salary ;
}
|
로그인 후 복사
로그인 후 복사
现有索引数组如下:
1 2 3 4 5 6 | $user = [
'name' => 'zhangsan' ,
'age' => 18,
'sex' => 1,
'school' => 'sysu' ,
];
|
로그인 후 복사
로그인 후 복사
问题是,如何用这个数组给对象赋值,能不能用foreach进行赋值啊?现在我只会下面的实现,但是被说这个方法不好,应该用foreach,但是不知道怎么用?
1 2 3 4 5 6 7 | $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' ];
|
로그인 후 복사
로그인 후 복사
1 2 3 | <code> foreach ( $user as $prop => $val ) {
$user1 ->{ $prop } = $val ;
}</code>
|
로그인 후 복사
1 2 3 4 5 6 7 | <code>
$userObj = new User();
foreach ( $user as $key => $value ){
if (property_exists( $userObj , $key )){
$userObj -> $key = $value
}
}</code>
|
로그인 후 복사
1 2 3 4 5 6 7 8 | <code> $user = [
'name' => 'zhangsan' ,
'age' => 18,
'sex' => 1,
'school' => 'sysu' ,
];
$userobj = (object) $user </code>
|
로그인 후 복사