有一个提取函数用于从数组生成局部变量:
extract(['a' => 10, 'b' => 20]) // $a = 10, $b = 20
Run Code Online (Sandbox Code Playgroud)
什么是干净的解决方案,如extract()功能,但对于班级成员?显然我可以做一些事情:
class User {
private $user_id;
private $password;
private $email;
public function __construct($params) {
$this->user_id = isset($params['user_id']) ? $params['user_id'] : null;
$this->password = isset($params['password']) ? $params['password'] : null;
$this->email = isset($params['email']) ? $params['email'] : null;
}
}
Run Code Online (Sandbox Code Playgroud)
有更清洁的方法吗?
一个简单的解决方案,行为如下extract():
foreach($params as $key => $val) {
$this->$key = $val;
}
Run Code Online (Sandbox Code Playgroud)