如何从函数返回一个对象?

oke*_*_on 2 php object

我不明白如何从函数返回一个对象.由于对象是通过引用传递和返回的,如果我在函数中创建了一个对象,我希望在函数完成执行后销毁这样的对象.所以这样的返回对象引用应该是指不存在的(被破坏的)对象.但是我在函数中创建的对象已成功返回.怎么会??

class O{
    public $ppty = "ppty value";
}

function f1(){
    $o1 = new O();
    return $o1;
}

var_dump(f1());


**Result:**
object(O)[15]
  public 'ppty' => string 'ppty value' (length=10)
Run Code Online (Sandbox Code Playgroud)

dec*_*eze 6

变量"保持"对象实际上是持有对象的引用.对象存在于内存中的某个位置,引用该对象的变量只保存内存地址(过于简化).这是参考.当返回该引用或将其传递到某个地方或将其分配给另一个变量时,将生成该引用的副本(意味着复制了内存地址值;例如,您0xDEADBEAF从函数返回值;再次,过度简化).这些引用被视为对象的属性; 只有当引用计数达到0(没有变量持有对象的引用)时,才会收集对象垃圾.