【问题标题】:init value array for a object对象的初始值数组
【发布时间】:2011-07-30 00:25:49
【问题描述】:

对象的初始化值数组。

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

【问题讨论】:

  • 是的,我明白了,但很难理解他们的回答?但对我来说比简单。看看这个我仍然无法解决我的问题。
  • 简而言之:你不能在那里使用函数。只是不要在那里使用函数。

标签: php


【解决方案1】:

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

【讨论】:

  • 这是一个公平的观点,可能更适合 OP 的情况,+1。
【解决方案2】:

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

最好的解决方法是在构造函数中进行赋值:

class test {  

  private $H_headers = null;

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

} 

【讨论】:

    猜你喜欢
    • 2018-06-22
    • 1970-01-01
    • 2017-02-16
    • 2017-02-18
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多