0

只是好奇哪种方式是正确的?

// 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();
4

1 回答 1

2

PHP 中的数组具有键值结构......因此是正确的:

$this->headers[$key] = $value;

事实上,PHP 手册说:

PHP 中的数组实际上是一个有序映射。

http://php.net/manual/de/language.types.array.php

虽然,根据How is the PHP array implementation on the C level?,它实际上是一个HashTable,这意味着您可以依赖 O(1) 查找。

于 2013-03-18T22:12:05.423 回答