在 class 中使用 php pack() 函数时出现语法错误

syntax error while using php pack() function inside class

我必须使用 PHP pack() 函数 在我的代码中做一些事情。但是当我在 class 中执行此操作时,出现以下错误。而如果我正常使用它(没有在 class 中使用),它可以正常工作。

class encryption
{
    $my_key = pack('H*', "123456");
}

这是错误:

Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in ...

此外,如果我将 public 用于 $my_key,我将收到一个新错误。

class encryption
{
    public $my_key = pack('H*', "123456");
}

错误:

Parse error: syntax error, unexpected '(', expecting ',' or ';' in ...

我的代码有什么问题?

在函数外部为 class 定义变量时,不能使用另一个函数来定义它。如果您需要它在初始化时具有该值,请在构造函数中设置该值。您的 class 将如下所示:

class encryption
{
    public $my_key;

    public function __construct() {
        $this->my_key = pack('H*', "123456");
    }
}
class encryption
{
    public $my_key;

    public function __construct()
    {
         $this->my_key = $this->pack('H*', "123456");
         // will always be executed when you create an object of this class
    }

    private function pack($arg1, $arg2)
    {
        // return something
    }
}