Новое Расширение Php Позволяет Добавлять К Скалярам Произвольные Методы.

На Github появилось новое экспериментальное расширение PHP «скалярные_объекты» , с помощью которого можно добавлять любые методы к числам, строкам, массивам.

Это выглядит примерно так:

  
  
  
  
   

$result = $string->replace('shit', 'candy')->remove(',')->toUpper()->split(" ")->sort();

Мило, не так ли? Инструкции по установке можно найти по ссылке выше, требуется PHP 5.4. Имейте в виду, что расширение находится на очень ранней стадии альфа-версии, первый коммит датирован 24 января.

Я рад, что автором расширения является 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
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.