__set_state() - 对php.net

时间:2018-05-02 15:00:50

标签: php magic-methods setstate

http://php.net/manual/en/language.oop5.magic.php#object.set-state

  

注意:导出对象时,var_export()不会检查对象的类是否实现__set_state(),因此如果未实现__set_state(),则重新导入此类对象将失败。特别是,这会影响一些内部类。程序员有责任验证是否只重新导入对象,其类实现了__set_state()。

1)__ set_state()是我们在每个想要实现它的对象中实现的东西吗?

2)一个物体可以拥有或没有?

3)“重新进口”是什么意思? var_export执行导出,所以我们导入或实际“重新导入”,我不明白这一部分。

4)“这特别影响了一些内部课程”;更多信息将是好的

1 个答案:

答案 0 :(得分:0)

  

1)__ set_state()是我们在每个人中实现的东西   我们希望将它放在哪里?

  

2)一个物体能否拥有它?

  

3)"重新导入"意思? var_export执行导出,因此我们导入或实际重新导入",我不明白这一部分。

$c = new C();
$exported_value = var_export($c) # export
$new_c = eval($exported_value) # re-import

此外,如果您将$exported_value存储为文件并需要它,则会构成重新导入。

  

4)"这特别影响了一些内部课程&#34 ;;更多信息将是好的

基于PHP terminology我想这意味着PHP内置了类,例如Date and Time related classes。这基本上意味着您不能假设PHP在类中构建实现__set_state()方法。