我有一个像下面这样的简单类,有一些已定义的属性:
class model
{
public $fakeUser = 'user';
public $ENABLED_IF_LOGIN='disabled',
$DISABLED_IF_LOGIN='',
$HIDE_IF_LOGIN='',
$SHOW_IF_LOGIN='hide',
$SHOW_IF_EMAIL_VERIFIED='',
$SHOW_IF_MOB_VERIFIED='',
$SHOW_IF_INFO_VERIFIED='',
$SHOW_IF_ADDR_VERIFIED='',
$HIDE_IF_EMAIL_VERIFIED='',
$HIDE_IF_MOB_VERIFIED='',
$HIDE_IF_INFO_VERIFIED='',
$HIDE_IF_ADDR_VERIFIED='';.
function __construct()
{
}
}
这些属性在执行期间正在发生变化。
当我调用__construct()时,如何设置默认类属性。
我试过了,但我对new model
:
$prop = get_object_vars(new model);
foreach($prop as $k=>$v)
$this->{$k} = $v;
答案 0 :(得分:1)
<?php
class model
{
public $fakeUser = 'user';
public $ENABLED_IF_LOGIN='disabled',
$DISABLED_IF_LOGIN='',
$HIDE_IF_LOGIN='',
$SHOW_IF_LOGIN='hide',
$SHOW_IF_EMAIL_VERIFIED='',
$SHOW_IF_MOB_VERIFIED='',
$SHOW_IF_INFO_VERIFIED='',
$SHOW_IF_ADDR_VERIFIED='',
$HIDE_IF_EMAIL_VERIFIED='',
$HIDE_IF_MOB_VERIFIED='',
$HIDE_IF_INFO_VERIFIED='',
$HIDE_IF_ADDR_VERIFIED='';
}
$dirtyModel = new Model();
$dirtyModel->fakeUser = 'updatedFakeUser';
var_dump($dirtyModel);
// reset properties
$defaultModel = new Model();
$defaultValues = get_object_vars($defaultModel);
foreach ($defaultValues as $k => $v) {
$dirtyModel->{$k} = $v;
}
// the object after re-initialised
var_dump($dirtyModel);