在php中构造数据types?

任何人都可以给我例如结构数据types在PHP? 怎么会突然出现像php这样的结构?

最接近结构的是所有成员都是public的对象。

 class MyStruct { public $foo; public $bar; } $obj = new MyStruct(); $obj->foo = 'Hello'; $obj->bar = 'World'; 

我会说看看PHP类文档将是值得的。 如果你需要一个一次性的结构, 使用亚历克斯的答案中提到的StdObject 。

你可以使用一个数组

 $something = array( 'key' => 'value', 'key2' => 'value2' ); 

与标准的对象。

 $something = new StdClass(); $something->key = 'value'; $something->key2 = 'value2'; 

我今天拼凑了一个“dynamic”结构类,今晚看了一下,有人写了类似于更好的处理构造函数参数的东西,可能值得一看:

http://code.activestate.com/recipes/577160-php-struct-port/

在这个页面上的一个注释提到了PHP中的一个有趣的事情 – 显然你可以把一个数组作为一个对象,它可以让你使用箭头符号来引用数组元素,就像使用C中的一个Struct指针一样。评论的例子如下:

 $z = array('foo' => 1, 'bar' => true, 'baz' => array(1,2,3)); //accessing values as properties $y = (object)$z; echo $y->foo; 

我还没有尝试过,但是可能只是通过投射来获得所需的符号 – 如果这就是你所追求的。 这些当然是“dynamic的”数据结构,只是用于访问哈希中的键/值对的语法糖。

如果你真的在寻找更静态的东西,那么ASpencer的回答就是你正在寻找的机器人(就像欧比旺可能会说的那样)。

我推荐2件事。 首先是关联数组

 $person = Array(); $person['name'] = "Joe"; $person['age'] = 22; 

其次是

详细的文档在这里: http : //php.net/manual/en/language.oop5.php

看来, struct数据types通常在SOAP中使用

 var_dump($client->__getTypes()); array(52) { [0] => string(43) "struct Bank {\n string Code;\n string Name;\n}" } 

这不是一个本地的PHP数据types!

看起来,SOAP中引用的structtypes的属性可以作为一个简单的PHP stdClass对象来访问:

 $some_struct = $client->SomeMethod(); echo 'Name: ' . $some_struct->Name;