在我的类中(实际上是一个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 - PHP-意外的全局,期望在类中使用String,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5563758/