Статическая альтернатива в PHP для <b>Ошибка разбора </b>: синтаксическая ошибка, неожиданный T_STATIC в <b> - PullRequest
0 голосов
/ 28 сентября 2011

Я тестировал свое PHP-приложение на localhost с Xamppp, и все было хорошо, но когда я экспортировал его на реальный сервер, оно больше не работает.Я узнал, что это потому, что мой сервер не поддерживает позднюю статическую привязку.Мой сервер имеет версию 5.2.17 .

Я получаю эту ошибку.

<b>Parse error</b>:  syntax error, unexpected T_STATIC in <b>/home/storage/f/9d/09/meuplacar/public_html/filme/work/class_lib.php</b> on line <b>555</b><br />

Я просто использую ключевое слово static в построенном мной классе Util.Что бы вы предложили мне изменить таким способом:

Util

class Util
{
    private static $initialized = false;
        private static function initialize()
        {
            if (self::$initialized)
                    return;
            self::$initialized = true;
        }

    public static function getHoursAndMinutesFromTime($time) {
        self::initialize();
        $pieces = explode (":", $time);
        $output = "";
        $output = $pieces[0] . ":" . $pieces[1];
        return $output;
    }
}

И для уникального экземпляра фасада

Синглтон

abstract class Singleton {

    protected static $_instance = NULL;

    /**
     * Prevent direct object creation
     */
    final private function  __construct() {
    }

    /**
     * Prevent object cloning
     */
    final private function  __clone() {
    }

    /**
     * Returns new or existing Singleton instance
     * @return Singleton
     */
    final public static function getInstance(){
        if(null !== static::$_instance){
            return static::$_instance;
        }
        static::$_instance = new static();
        return static::$_instance;
    }

}

class Facade extends Singleton  {

    public function retrieveAllWorkdays()
    {
        $array = DB::selectAllWorkdays();
        return Util::constructWorkdaysArray($array);
    }

1 Ответ

0 голосов
/ 28 сентября 2011

Поздние статические привязки доступны только в php 5.3.0 и позже: http://php.net/manual/en/language.oop5.late-static-bindings.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...