Just curious which way is correct?
// 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);
}
should this be interpreted in PHP as
Class HashMap {}
/**
* @return this
*/
public function setRequestHeader($key, $value) {
if ($this->headers == NULL) {
$this->headers = new HashMap();
}
return $this->headers->$key = $value;
}
....or....
/**
* @return array
*/
public function setRequestHeader($key, $value) {
if ($this->headers == NULL) {
$this->headers = array();
}
return $this->headers[$key] = $value;
}
if the associative array is correct like I believe, would there be a need for declaring this variable at the top of the class?
// JAVA version
private HashMap<String, String> headers;
Would be akin to
// PHP version
private $headers = array();
Arrays in PHP have a key-value structure...thus is correct:
$this->headers[$key] = $value;
In fact, the PHP manual says:
An array in PHP is actually an ordered map.
http://php.net/manual/de/language.types.array.php
Although, according to How is the PHP array implemented on the C level? , it is actually a HashTable
, which means you can rely on the O(1) lookup.