|
|
|
|
|
для: Atheist
(18.04.2008 в 17:15)
| | А в русском туторе:
mixed unserialize (string str) - создаёт PHP-значение из хранимого представления.
unserialize() принимает одну сериализованную переменную (см. serialize()) и конвертирует её обратно в РНР-значение. Возвращается конвертированное значение, которое может быть integer, float, string, array или object.
Примечание: можно установить callback-функцийю, которая будет вызываться, если неопределённый/undefined класс должен быть инстанциирован в процессе десериализации (для предотвращения получения неполного object "__PHP_Incomplete_Class"). Используйте ваш php.ini, ini_set() или .htaccess-файл для определения 'unserialize_callback_func'. Каждый раз, когда undefined класс должен быть инстанциирован, вызывается эта установка. Для отключения этого просто сделайте эту установку пустой. | |
|
|
|
|
|
|
|
для: Zmej
(17.04.2008 в 14:38)
| | ; The unserialize callback function will called (with the undefind class'
; name as parameter), if the unserializer finds an undefined class
; which should be instanciated.
; A warning appears if the specified function is not defined, or if the
; function doesn't include/implement the missing class.
; So only set this entry, if you really want to implement such a
; callback-function.
Я понял это так:
<?php
function _unserialize($class_name)
{
error_log("Class '{$class_name}' could not be found");
class test
{
}
}
var_dump(unserialize('O:4:"test":0:{}'));
ini_set('unserialize_callback_func', '_unserialize');
var_dump(unserialize('O:4:"test":0:{}'));
?>
|
То есть если при десериализации встречается объект неизвестного класса, то можно поставить обработчик, который об ошибке объявит или объявит нужный класс. И прочее. | |
|
|
|
|
|
|
| привет всем!
Кто-нибудь может определенно подсказать, что делает вот эта директива (unserialize_callback_func) в рнр.ini. Понимаю, что связана десериализацией... но для чего нужна конкретно и в каких случаях полезна? | |
|
|
|
|