在C#中,给出了这个类
public class MyClass {
public int Id { get; set; }
public int Name { get; set; }
}
我可以这样做来实例化它:
var instance = new MyClass(){
Id = 34,
Name = "Frank"
};
比这样做好很多:
var instance = new MyClass();
instance.Id = 34;
instance.Name = "Frank";
我可以在PHP中执行此操作,还是我唯一的选择:
$instance = new MyClass();
$instance->Id = 34;
$instance->Name = "Frank";
答案 0 :(得分:1)
没有像在C#中那样在PHP中一次设置所有字段的方法。最接近的是:
class MyClass {
function __construct(array $data = array()) {
foreach($data as $key => $value) {
$this->$key = $value;
}
}
}
$instance = new MyClass(array(
'Id' => 34,
'Name' => 'Peter',
));
您应该稍微修改一下,以便私有字段不可访问(可能是一个命名约定,您所有私有字段都以下划线开头,并且在foreach中检查$ key不是以该字符串开头的)。