Вот ситуация, когда я передаю объект через несколько php-функций. Я ищу лучшую производительность, поэтому мне было интересно, сериализует хороший способ сделать это или сериализация не нужна?Передача объекта из функции в другую функцию
ответ
Если вы передаете объект через несколько «функций», то вам не нужно сериализация - это будет в памяти в PHP парсер и сериализация будет просто пустая трата времени.
Если вам нужно передать значение с одной страницы сценария другому, то сериализация является опцией, так как переменные в первом скрипте будут недоступны во втором скрипте.
Большую часть времени вам не нужно это делать - что именно вы пытаетесь сделать?
. Хороший вопрос о несколько страниц. –
Tnx этот ответ дает мне все ясно. – DownDown
Сериализация - одна из худших вещей, которые вы можете сделать. Объекты в php 5 передаются по ссылке, и таким образом объем данных, передаваемых между функциями, минимален (только указатель, который является целым числом).
Кроме того, если вы несериализуете объект внутри вызываемой функции, это будет не исходный объект, а клоун, поэтому любые изменения, внесенные в этот объект внутри функции, будут выполняться с клоном, а не с исходным экземпляром. –
Просто сдайте объект. Сериализации не требуется.
function foo() {
return new Foo;
}
function bar($obj) {
return $obj;
}
function baz($obj) {
$obj->foo();
}
baz(bar(foo()));
Я считаю, что нет никаких проблем передачи объектов вокруг, как это:
$obj=new myclass;
$result=mufunk($obj);
function myfunk($myfobj)
{
$myreturn=new anotherclass;
return $myreturn;
}
Во-первых, это не достаточно информации здесь этот вопрос, чтобы получить полностью учтены полезный ответ. Во-вторых, я был бы очень удивлен, если бы сериализация была хорошей идеей здесь. Вы добавляете бессмысленные накладные расходы. – DaveRandom
Зачем вам нужно сериализовать объект, чтобы передать его из одной функции в другую? Можете ли вы показать пример того, что вы делаете? – David
Пожалуйста, покажите, что вы пробовали ?? –