PHP 对象数组 (shorthand)
PHP array of objects (shorthand)
我知道这是在 PHP 中创建对象数组的(其中一种)正确方法:
$obj1 = new stdClass;
$obj1->title = "Title 1";
$obj1->author = "Author 1";
$obj1->publisher = "Publisher Name 1";
$obj2 = new stdClass;
$obj2->title = "Title 2";
$obj2->author = "Author 2";
$obj2->publisher = "Publisher Name 2";
$obj3 = new stdClass;
$obj3->title = "Title 3";
$obj3->author = "Author 3";
$obj3->publisher = "Publisher Name 3";
$newArray = array($obj1, $obj2, $obj3);
echo ($newArray[0]->title);
但在其他一些语言(JS、ActionScript..etc)中,您可以像这样在数组声明中快速创建对象:
var userArray = [{name:'name 1', age:'10'}, {name:'name 2', age:'11'}, {name:'name 3', age:'12'}];
通用,未命名,无 class 个对象.....
然后像这样访问它:
userArray[0].name
在 PHP 中是否有 quick/shorthand 方法来做同样的事情?
或者需要定义对象名并实例化..等
像这样:$obj1 = new stdClass;
然后移动到分配每个 属性 然后在单独的步骤中添加到数组中?
你可以声明你的数组,然后简单地cast它到一个对象,例如
$arr = [
(object) [
"a" => 1,
"b" => 2,
"c" => 3,
]
];
哪个会给你这个:
Array
(
[0] => stdClass Object
(
[a] => 1
[b] => 2
[c] => 3
)
)
您可以将 class 的变量声明为 public
class Movie {
public $name = 'Some Title';
public $description = 'This is a description'
}
$movie = new Movie;
echo $movie->name;
echo $movie->description;
$movie->name = 'Name here';
$movie->description = 'New Description';
var_dump($movie);
您也可以像这样动态创建对象:
$movie = (object) array('name'=>'Okay','description'=>'here we go again');
echo $movie->name;
echo $movie->description;
或使用对象数组:
for($i=1;$i<=5;$i++) {
$movies[] = (object) array('name'=>'Movie #'.$i, 'description'=>'This is movie number '.$i);
}
echo $movies[1]->name;
echo $movies[1]->description;
我知道这是在 PHP 中创建对象数组的(其中一种)正确方法:
$obj1 = new stdClass;
$obj1->title = "Title 1";
$obj1->author = "Author 1";
$obj1->publisher = "Publisher Name 1";
$obj2 = new stdClass;
$obj2->title = "Title 2";
$obj2->author = "Author 2";
$obj2->publisher = "Publisher Name 2";
$obj3 = new stdClass;
$obj3->title = "Title 3";
$obj3->author = "Author 3";
$obj3->publisher = "Publisher Name 3";
$newArray = array($obj1, $obj2, $obj3);
echo ($newArray[0]->title);
但在其他一些语言(JS、ActionScript..etc)中,您可以像这样在数组声明中快速创建对象:
var userArray = [{name:'name 1', age:'10'}, {name:'name 2', age:'11'}, {name:'name 3', age:'12'}];
通用,未命名,无 class 个对象.....
然后像这样访问它:
userArray[0].name
在 PHP 中是否有 quick/shorthand 方法来做同样的事情?
或者需要定义对象名并实例化..等
像这样:$obj1 = new stdClass;
然后移动到分配每个 属性 然后在单独的步骤中添加到数组中?
你可以声明你的数组,然后简单地cast它到一个对象,例如
$arr = [
(object) [
"a" => 1,
"b" => 2,
"c" => 3,
]
];
哪个会给你这个:
Array
(
[0] => stdClass Object
(
[a] => 1
[b] => 2
[c] => 3
)
)
您可以将 class 的变量声明为 public
class Movie {
public $name = 'Some Title';
public $description = 'This is a description'
}
$movie = new Movie;
echo $movie->name;
echo $movie->description;
$movie->name = 'Name here';
$movie->description = 'New Description';
var_dump($movie);
您也可以像这样动态创建对象:
$movie = (object) array('name'=>'Okay','description'=>'here we go again');
echo $movie->name;
echo $movie->description;
或使用对象数组:
for($i=1;$i<=5;$i++) {
$movies[] = (object) array('name'=>'Movie #'.$i, 'description'=>'This is movie number '.$i);
}
echo $movies[1]->name;
echo $movies[1]->description;