在我的类(class)(实际上是一个 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;
}
知道我哪里出错了吗? 谢谢!
最佳答案
我猜这是在类定义中,例如:
class Foo {
global $var;
}
你不能在那里使用这个关键字。您可以在类属性之前使用的唯一关键字是可见性声明 var
、public
、protected
和 private
。类属性始终是它们在其中定义的类的属性,它们不能是全局变量。
如果你坚持,你可以在一个函数中从 global
获取它们并将它们设置为属性:
class Foo {
public $var;
public function foo() {
global $var;
$this->var = $var;
}
}
虽然这一切都非常丑陋,尤其是因为 Cake 为您提供了更好的工具来处理这些事情,例如 Configure
class在全局注册值。
或者您可能只想创建简单的类属性:
class Foo {
public $accessid = 'accessid';
public $secret = "secret";
public $b = 0;
public $m = 0;
function generateCredentials() {
$this->accessid;
}
}
关于PHP - 意外的全局,期待类中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5563758/