在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中引用的struct
types的属性可以作为一个简单的PHP stdClass
对象来访问:
$some_struct = $client->SomeMethod(); echo 'Name: ' . $some_struct->Name;