На Github появилось новое экспериментальное расширение PHP «скалярные_объекты» , с помощью которого можно добавлять любые методы к числам, строкам, массивам.
Это выглядит примерно так:
Мило, не так ли? Инструкции по установке можно найти по ссылке выше, требуется PHP 5.4. Имейте в виду, что расширение находится на очень ранней стадии альфа-версии, первый коммит датирован 24 января.$result = $string->replace('shit', 'candy')->remove(',')->toUpper()->split(" ")->sort();
Я рад, что автором расширения является PHP-участник Никита Попов: есть вероятность, что такой API когда-нибудь будет добавлен в ядро интерпретатора.
Далее я просто покажу, как можно использовать эти новые возможности в разработке.
Допустим, у нас есть такая строка: $string = 'lemon, orange, shit, banana, apple';
Задача:
- замените дерьмо конфетами;
- убрать запятые;
- преобразовать строку в верхний регистр;
- разделить слова и поместить их в массив;
- отсортируйте этот массив по алфавиту.
$string = str_replace('shit', 'candy', $string);
$string = str_replace(',', '', $string);
$string = strtoupper($string);
$array = explode(' ', $string);
sort($array);
Используя это расширение, проблема решается одной строкой:
$result = $string->replace('shit', 'candy')->remove(',')->toUpper()->split(" ")->sort();
Все понятно и красиво, но как это осуществить? 1. Установите расширение scalar_objects; 2. Давайте создадим классы-обработчики для строк и массивов с нужными нам публичными методами:
class StringHandler {
public function replace($from, $to) {
return str_replace($from, $to, $this);
}
public function split($separator, $limit = PHP_INT_MAX) {
return explode($separator, $this, $limit);
}
public function toUpper() {
return strtoupper($this);
}
public function remove($what)
{
Теги: #php #scalar_objects #скалярные объекты #php
Вместе с данным постом часто просматривают:
-
Как Мы Вырастили Системного Аналитика С Нуля
19 Oct, 24 -
Vpn За 60 Секунд
19 Oct, 24 -
Как Были Разработаны Первые Процессоры Intel
19 Oct, 24