douwu5428
2013-03-18 22:10
浏览 156
已采纳

将Java hashmap初始化程序转换为PHP等效项

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

图片转代码服务由CSDN问答提供 功能建议

好奇哪条路是正确的?

  // 原始JAVA方法
公共void setRequestHeader(String key,String value){
 if(this.headers == null){
 this.headers = new HashMap&lt; String,String&gt;(); 
} 
这个。  headers.put(key,value); 
} 
   
 
 

这应该在PHP中解释为

  类HashMap {} 
 
 / ** 
 * @return这个
 * / 
共享函数setRequestHeader($ key,$ value){
 if($ this-&gt; headers == NULL){
  $ this-&gt; headers = new HashMap(); 
} 
返回$ this-&gt; headers-&gt; $ key = $ value; 
} 
   
 
  

....或....

  / ** 
 * @return array 
 * / 
 npublic function setRequestHeader($ key,$ value)  {
 if($ this-&gt; headers == NULL){
 $ this-&gt; headers = array(); 
} 
返回$ this-&gt; headers [$ key] = $ value; \  n} 
   
 
 

如果关联数组是正确的,就像我认为的那样,是否需要 在类的顶部声明这个变量?

  // JAVA version 
private HashMap&lt; String,String&gt; 标题; 
   
 
 

类似于

  // PHP版本
private $ headers = array();  
   
 
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • doubeiji2602 2013-03-18 22:12
    已采纳

    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.

    点赞 打赏 评论

相关推荐 更多相似问题