2012-05-21 100 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; 
    } 
相關問題