我对这个奇怪的问题感到困惑,这让我感到困惑。请看一下。可能是一个不同的眼睛会抓住错误。我已粘贴下面的代码,因此您可以在第21行看到错误发生的位置('consumer_key'=> $ this-> get_consumer_key(),)。
提前感谢您的帮助。干杯:)
<?php
class Xro_config {
//Set to true to enable Oauth debugging
protected $debug = true;
// public, partner, or private
protected $xro_app_type = "Public";
/*
* Xero Calback URL
*/
protected static $_oauth_callback = '';
/*
* Xero Signature keys
*/
protected $signatures = array(
// local
'consumer_key' => $this->get_consumer_key(),
'shared_secret' => $this->get_shared_secret(),
// 'rsa_private_key' => '/[path]/[privatekey].pem',
// 'rsa_public_key' => '/[path]/[publickey].cer'
);
protected static $_consumer_key;
protected static $_shared_secret;
/**
* Sets the Oauth Callback URL. The Default is in an emptystring
* @param string $URL
*/
public static function set_oauth_callback($URL) {
self::$_oauth_callback = $URL;
}
/**
* Gets the oauth_callback
*/
function get_oauth_callback(){
return self::$_oauth_callback;
}
/**
* Sets the Cusumer API KEys
* @param string $consumerkey
*/
public static function set_consumer_key($consumerkey) {
self::$_consumer_key = $consumerkey;
}
/**
* Sets the Cusumer API KEys
* @param string $sharedSecret
*/
public static function set_shared_secret($sharedSecret) {
self::$_shared_secret = $sharedSecret;
}
/*
* Get Signature Keys
*/
function get_consumer_key(){
return self::$_consumer_key;
}
function get_shared_secret(){
return self::$_shared_secret;
}
}
?>
答案 0 :(得分:3)
声明变量时,不能使用$this
。 $this
仅存在于类的成员函数中。您必须在类的构造函数中启动变量。
修改强>
看起来你正在为其他一切使用静态方法/变量。我想你也希望这个也是静态的。但是由于你不能用函数初始化一个变量,并且你不打算调用一个构造函数,你应该把$signatures
变量变成一个方法:
<?php
class Xro_config {
...
protected static function signatures() {
return rray(
// local
'consumer_key' => self::get_consumer_key(),
'shared_secret' => self::get_shared_secret(),
// 'rsa_private_key' => '/[path]/[privatekey].pem',
// 'rsa_public_key' => '/[path]/[publickey].cer'
);
}
}
答案 1 :(得分:0)
您应该在类构造函数上初始化变量。
例如:
class Xro_config {
protected $signatures;
public function __construct()
{
$this->signatures = array(
// local
'consumer_key' => $this->get_consumer_key(),
'shared_secret' => $this->get_shared_secret(),
// 'rsa_private_key' => '/[path]/[privatekey].pem',
// 'rsa_public_key' => '/[path]/[publickey].cer'
);
}
}