Php 实例化类并用一条语句分配属性
在C#中,给定这个类Php 实例化类并用一条语句分配属性,php,instantiation,Php,Instantiation,在C#中,给定这个类 公共类MyClass{ 公共int Id{get;set;} 公共int名称{get;set;} } 我可以这样做来实例化它: var实例=新的MyClass(){ Id=34, Name=“弗兰克” }; 这比这样做要好得多: var instance=new MyClass(); 实例Id=34; instance.Name=“Frank”; 我可以在PHP中执行此操作,或者这是我唯一的选择: $instance=new MyClass(); $instance-
公共类MyClass{
公共int Id{get;set;}
公共int名称{get;set;}
}
我可以这样做来实例化它:
var实例=新的MyClass(){
Id=34,
Name=“弗兰克”
};
这比这样做要好得多:
var instance=new MyClass();
实例Id=34;
instance.Name=“Frank”;
我可以在PHP中执行此操作,或者这是我唯一的选择:
$instance=new MyClass();
$instance->Id=34;
$instance->Name=“Frank”;
在PHP中,没有像C#那样一次设置所有字段的方法。您可以获得的最接近值如下所示:
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不以下划线开头)