解析错误:语法错误,第21行的Xro_config.php中出现意外的T_VARIABLE

时间:2012-03-14 18:07:34

标签: php arrays variables syntax-error parse-error

我对这个奇怪的问题感到困惑,这让我感到困惑。请看一下。可能是一个不同的眼睛会抓住错误。我已粘贴下面的代码,因此您可以在第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;
        }
              }
?>

2 个答案:

答案 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'
       );

  }
}