1
A
回答
4
A const
不是一个对象属性,它是一个类常量。也就是说,它适用于你的班级,而不是它的任何对象。这也是为什么你使用A::XXX
而不是$this->XXX
来引用类常量。
因此,您不能序列化const
与您的对象,就像你不能序列化任何静态变量。
然而,当你反序列化对象,你会得到它作为类的一个实例,所以你可以参考常数使用类名:
$class = get_class(unserialize($A_obj));
echo $class::XXX;
4
是可能的序列化和实例当然,该类包含const
属性。
但,在序列化的字符串const
属性将不存在:没有必要为它,因为它是永恒的:当字符串将被解序列化,这将是你的类的实例 - 和,所以,从班级的定义中得到这种不变的财产。
序列化您的类的实例:
class A {
const XXX = 'aaa';
function test() {
echo A::XXX;
}
}
$a = new A();
$str = serialize($a);
var_dump($str);
您将获得:
string 'O:1:"A":0:{}' (length=12)
中不变的是不存在的序列化的字符串。
解串行作品:
$b = unserialize($str);
var_dump($b);
而且,如果你尝试调用该$b
对象的方法,得到的磨片反序列化:
$b->test();
常数的确发现,因为它在你班级的定义中,你会得到:
aaa
0
<?php
class A
{
const XXX = 'aaa';
}
$a = new A();
$b=serialize($a);
$c=unserialize($b); // copy of the $a obj
,但你可以通过这种方式A::XXX;
相关问题
- 1. reverse serialize()-jquery
- 2. Serialize KeyguardLock
- 3. PHP变量处理函数serialize()
- 4. serialize()和$ _SESSION
- 5. 串联郎CONST和STR CONST在PHP
- 6. boost :: serialize段错误
- 7. Jquery serialize()为空
- 8. __clone()vs unserialize(serialize())?
- 9. .serialize contentEditable div?
- 10. Serialize/Reg ex
- 11. 与.serialize()和.serializeElements()
- 12. jquery sortable('serialize')
- 13. Serialize NodaTime JSON
- 14. jQuery .serialize()的后?
- 15. jquery serialize post
- 16. serialize()sortable accordion
- 17. Serialize ViewModel,ObservableCollection
- 18. Serialize a java.awt.geom.Area
- 19. jQuery的.serialize()
- 20. 使用jquery .serialize()
- 21. Serialize与Json
- 22. Serialize Composed Func?
- 23. Serialize MVC ViewDataDictionary
- 24. jQuery的.serialize()返回空
- 25. php class constant call $ this :: CONST
- 26. Serialize枚举为int
- 27. JavaScript Serialize Array to JSON
- 28. jquery serialize()+自定义?
- 29. 包括jQuery中.serialize()
- 30. serialize不是std :: unique_ptr的成员
访问续您是否尝试过? – 2011-02-26 12:16:12
是的,它nothig商店,只有公共道具 – kusanagi 2011-02-26 12:16:52
为什么你想序列化const?你不能只访问它吗? – krtek 2011-02-26 12:18:32