2011-12-09 29 views
3

飛對象我知道這可以通過javascript來完成,像這樣:回報在PHP

function doSomething(){ 
    var something, something_else, another_thing; 

    // do something with these vars 

    return { 
     attribute1 : something, 
     array1 : [ 
      something_else, 
      another_thing 
     ] 
    } 
} 

可以在PHP做什麼?

回答

4

您可以創建一個新對象stdClass(),分配其屬性並將其返回。

$x = new stdClass(); 
$x->attribute1 = "something"; 
$x->array1 = array(1,2,3); 

var_dump($x); 

return $x; 
+4

或$ x =(object)array('attribute'=>「Something」,「array1」=> array(1,2,3));返回$ x – Sid

+0

@Sid這是一個很酷的方法。 –

3

PHP不支持對象literals。但是,它確實有一個通用的stdClass類,您可以使用typecast an array into來獲得相似的語法。

function doSomething() 
{ 
    $something = 1; 
    $something_else = 2; 
    $another_thing = 3; 

    return (object) [ 
     "attribute1" => $something, 
     "array1" => [ 
      $something_else, 
      $another_thing 
     ] 
    ]; 
} 

var_dump(doSomething()); 

會給(demo

object(stdClass)#1 (2) { 
    ["attribute1"]=> int(1) 
    ["array1"]=> array(2) { 
     [0]=> int(2) 
     [1]=> int(3) 
    } 
} 

請注意,您只能使用short array syntax作爲PHP 5.4的。在此之前,你會使用array()