2012-05-21 102 views
0

这是我通过几个php函数传递一个对象的情况。 我在寻找最好的性能,所以我想知道是序列化的一个好方法来做到这一点,或序列化没有必要?将对象从函数传递到另一个函数

+1

首先,有几乎没有足够的信息,这里这个问题得到充分考虑有用的答案。其次,如果序列化在这里是一个好主意,我会非常惊讶。你正在增加毫无意义的开销。 – DaveRandom

+2

为什么你需要序列化对象以将它从一个函数传递到另一个函数?你能举一个你在做什么的例子吗? – David

+0

请显示你曾尝试过? –

回答

1

如果您传递对象通过几个“功能”,那么你就不需要连载 - 这将是在内存中的PHP解析器和系列化只会是一种浪费。

如果您需要将值从一个脚本页面传递到另一个脚本页面,则序列化是一个选项,因为第一个脚本中的变量将超出第二个脚本的范围。

大多数时候你不需要这样做 - 你到底想要做什么?

+0

好点多个页面。 –

+0

Tnx这个答案使我清楚一切。 – DownDown

0

序列化是你可以做的最糟糕的事情之一。 php 5中的对象通过引用传递,这样函数之间传递的数据量是最小的(只有一个指针是一个整数)。

+0

此外,如果您在被调用的函数中反序列化对象,它将不是原始对象,而是一个克隆,因此在该函数内对该对象所做的任何更改都将针对克隆而不是原始实例 –

1

只要通过对象。你不需要序列化。

function foo() { 
    return new Foo; 
} 

function bar($obj) { 
    return $obj; 
} 

function baz($obj) { 
    $obj->foo(); 
} 

baz(bar(foo())); 
0

我相信是没有问题的身边经过的物体是这样的:

$obj=new myclass; 
$result=mufunk($obj); 

function myfunk($myfobj) 
    { 
    $myreturn=new anotherclass; 
    return $myreturn; 
    } 
相关问题