Ошибка разбора: синтаксическая ошибка, неожиданный T_VARIABLE в Xro_config.php в строке 21 - PullRequest
0 голосов
/ 14 марта 2012

Я был озадачен этой странной проблемой, и она застряла. Пожалуйста, взгляните. Может быть, другой взгляд поймает ошибку. Я вставил приведенный ниже код, чтобы вы могли увидеть, где происходит ошибка в строке 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 ]

3 голосов
/ 14 марта 2012

Вы не можете использовать $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'
    );
  }
 }
0 голосов
/ 14 марта 2012

Вы должны инициализировать переменные в конструкторе класса.

Например:

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

  }
}
...