对象的init值数组

时间:2011-04-05 14:05:56

标签: php

对象的init值数组。

class test{
   private $H_headers = array("A","B K ".chr(128),"C","D");
                                                 //Why I can not init this value?
   ...
  }
}
Multiple annotations found at this line:
    - syntax error, unexpected ','
    - syntax error, unexpected '.', 
     expecting ')'

但通常我可以:

$H_headers = array("A","B K ".chr(128),"C","D");

2 个答案:

答案 0 :(得分:3)

Pekka已经提供了一个解决方案,但缺点是,该类必须实现一个构造函数,仅用于赋值。因为您要调用的函数不是那么特殊(只需获取特定ascii代码的字符),您也可以使用此

class test{
   private $H_headers = array("A","B K \x80","C","D");//Why I can not init this value more here
  }
}

80以十六进制为128\x告诉php,您希望将其作为字符。

更新: 有关它的东西:)

http://php.net/manual/en/language.types.string.php#language.types.string.syntax.double

答案 1 :(得分:1)

在类定义中不可能做你想做的事。重复链接讨论了为什么这是以这种方式设计的。

最佳解决方法是在构造函数中执行赋值:

class test {  

  private $H_headers = null;

  function __construct()
    { $this->H_headers = array("A","B K ".chr(128),"C","D");  } 

}