只是好奇哪一种方法是正确的?
// the origional JAVA method
public void setRequestHeader(String key, String value) {
if (this.headers == null) {
this.headers = new HashMap<String, String>();
}
this.headers.put(key, value);
}
在PHP中应该解释为
吗?Class HashMap {}
/**
* @return this
*/
public function setRequestHeader($key, $value) {
if ($this->headers == NULL) {
$this->headers = new HashMap();
}
return $this->headers->$key = $value;
}
…或…
/**
* @return array
*/
public function setRequestHeader($key, $value) {
if ($this->headers == NULL) {
$this->headers = array();
}
return $this->headers[$key] = $value;
}
如果关联数组像我相信的那样是正确的,是否需要在类的顶部声明这个变量?
// JAVA version
private HashMap<String, String> headers;
类似于
// PHP version
private $headers = array();
PHP中的数组有一个键值结构…
$this->headers[$key] = $value;
事实上,PHP手册说:
http://php.net/manual/de/language.types.array.phpPHP中的数组实际上是一个有序映射。
虽然,根据如何在C级实现PHP数组?,它实际上是一个HashTable
,这意味着您可以依赖于O(1)查找。