Как использовать эту функцию в классе PHP? - PullRequest
1 голос
/ 25 марта 2011
class io_dz {
    /**
     * Compress
     */
    public static function Set($Data) {
        if ($Data) {
            $Out = addslashes(gzcompress(serialize($Data), 9));
        } else {
            $Out = FALSE;
        }

        return $Out;
    }

    /**
     * Decompress
     */
    public static function Get($Data) {
        if ($Data) {
            $Out = unserialize(gzuncompress(stripslashes($Data)));
        } else {
            $Out = FALSE;
        }
        return $Out;
    }
}

это простая компрессия перед сериализацией.Как бы я вызвал эту функцию и использовал ее на $data В настоящее время у меня есть:

$dataCompressor = new $io_dz();
$cdata = $dataCompressor->Set($data);

Но, похоже, она не работает, любая помощь будет принята!

Спасибо!

Ответы [ 2 ]

3 голосов
/ 25 марта 2011

Вы объявили метод как статический, вам не нужно создавать экземпляр объекта для доступа к ним.Попробуйте только:

$cdata = io_dz::Set($data);

Если вам нужна дополнительная информация о статическом методе / атрибуте, вы можете просмотреть руководство по PHP, в котором есть несколько простых для понимания примеров: http://php.net/manual/en/language.oop5.static.php

3 голосов
/ 25 марта 2011

$cdata = $dataCompressor::Set($data);

Вам нужно ::, потому что вы сделали их статичными.Если бы они не были статичными и были только публичными функциями, это было бы ->

...