将对象从函数传递到另一个函数

时间:2012-05-21 12:45:57

标签: php function

这是我通过几个php函数传递一个对象的情况。 我正在寻找最好的性能,所以我想知道序列化是一个很好的方法,还是序列化没有必要?

4 个答案:

答案 0 :(得分:1)

只需传递对象即可。您不需要序列化。

function foo() {
    return new Foo;
}

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

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

baz(bar(foo()));

答案 1 :(得分:1)

如果你通过几个'函数'传递一个对象,那么你不需要序列化 ​​- 这将在PHP解析器的内存中,序列化将是一种浪费。

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

我相信像这样传递物体没有问题:

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

function myfunk($myfobj)
  {
    $myreturn=new anotherclass;
    return $myreturn;
  }