PHP - Unexpected Global,期望在类中使用String

Pro*_*cop 2 php cakephp

在我的类(这实际上是一个CakePHP模型)我试图简单地设置一个变量,然后从函数内部访问它,但我收到以下错误:

解析错误:语法错误,意外的T_GLOBAL,期望第120行的/path/to/file/file.php中的T_FUNCTION

我文件的第120行以下内容如下:

global $accessid = 'accessid';
global $secret = "secret";
global $b = 0;
global $m = 0;

function generateCredentials() {    
    global $accessid;

    return $accessid;
}
Run Code Online (Sandbox Code Playgroud)

知道我哪里错了吗?谢谢!

dec*_*eze 8

我猜这是在类定义中,如:

class Foo {
    global $var;
}
Run Code Online (Sandbox Code Playgroud)

你不能在那里使用这个关键字.唯一的关键词,你可以先类属性与有知名度的声明var,public,protectedprivate.类属性始终是它们所定义的类的属性,它们不能是全局变量.

如果你坚持,你可以从global一个函数中获取它们并将它们设置为属性:

class Foo {
    public $var;

    public function foo() {
        global $var;
        $this->var = $var;
    }
}
Run Code Online (Sandbox Code Playgroud)

这一切都非常难看,特别是因为Cake为您提供了更好的工具来处理这些事情,比如全局注册值的Configure.

或者您可能只想创建简单的类属性:

class Foo {

    public $accessid = 'accessid';
    public $secret = "secret";
    public $b = 0;
    public $m = 0;

    function generateCredentials() {    
        $this->accessid;
    }

}
Run Code Online (Sandbox Code Playgroud)