Для нормальной работы сайта необходимо разрешить JavaScript, включая скрипты с доменов googlesyndication.com и doubleclick.net для отображения системы поиска по сайту и прочих сервисов Google.

Новое расширение scalar_objects позволяющее в PHP 5.4 добавлять различные методы к уже существующим

logo

Новое расширение scalar_objects позволяющее в PHP 5.4 добавлять различные методы к уже существующим Расширение scalar_objects позволяющее добавлять различные методы к уже существующим в PHP 5.4 и зародилось оно на Github 24 января 2013 года. Описание PHP расширения scalar_objects гласит о том, что оно позволяет зарегистрировать некий произвольный PHP класс, который будет обрабатывать вызовы стандартных PHP методов определенных примитивных типов (null, bool, int, float, string, array and resource).

Для начала нужно будет скомпилировать и подключить PHP расширение scalar_objects - требуется PHP версии не ниже 5.4. Дальнейшее использование scalar_objects будет выглядеть примерно следующим образом:

# Создадём классы-хендлеры с нужными нам публичными методами:

# для обработки строк
class StringTypeHandler {
    public function length() {
        return strlen($this);
    }
}
 
# для обработки массивов
class ArrayHandler
{
    public function sort($flags = SORT_REGULAR)
    {
        sort($this, $flags);
        return $this;
    }
 
    public function count()
    {
        return count($this);
    }
}
 
# Привязываем методы для типов 'string' и 'array' к соответствующим классам:
register_primitive_type_handler('string', 'StringHandler');
register_primitive_type_handler('array', 'ArrayHandler');
 
# Используем
$str = "str";
var_dump($str->length()); // int(3)

После выполнения приведённых выше манипуляций у строковых (скалярных) переменных появился метод length, а у переменных типа array соответственно переопределён метод sort и count. Т.е. PHP расширение scalar_objects позволяет не только добавлять свои специфические методы для обработки типов (null, bool, int, float, string, array and resource) но также и переопределять поведение уже существующих.

Разумеется, что таких методов можно добавлять сколько душе угодно, все они публичные, а в качестве строки которая обрабатывается (числа, массива) выступает $this. "foobar"->trim(); вызовет Parse error - это значит, что методы пока можно вызывать только у переменных.

Автором PHP расширения scalar_objects является Никита Попов (контрибьютор PHP), возможно когда-нибудь оно будет добавлено в ядро PHP интерпретатора. Повторимся, что это расширение находится в альфа-версии, т.е. в эксперементальном варианте и использовать его можно только в качестве ознакомления на тестовых серверах но, не в коем случае не на "Product" серверах!


Ссылка на PHP расширение scalar_objects >>>

Рекомендуемый контент


Об авторе
АдМинь БагоИскатель
АдМинь БагоИскатель ярый борец за безглючную работу любых механизмов и организмов во всей вселенной и потому пребывает в вечном поиске всяческих багов, а тот кто ищет как известно всегда находит. Когда что-то или кого-то вылечить не в состоянии, то со словами "Я в аду, а вы все черти" уходит в запой выйдя из которого снова берётся лечить неизлечимое.
Ещё статьи автора

Добавить комментарий

АХТУНГ! Все комменты модерасятся модерастом. Мессаги исключительно рекламного или оскорбительного содержания не публикуются, а поэтому злостным спамерам, пранкерам и прочей сетевой нечисти рекомендуем напрасно не тратить своего времени и удовлетворять свои больные фантазии на специализированных Интернет ресурсах! Разумная же критика, замечания, дополнения и хвалебные оды приветствуются, также допускается легкий флуд или троллинг :)


Защитный код
Обновить

Рейтинг@Mail.ru 2 megabytes