Задать вопрос
SerJook
@SerJook
кодер

Почему в PHP строки и массивы не являются объектами?

С чем это связано?

Я бы хотел писать:
$var = new string("hello world");
echo $var->length();
echo $var->substr(0,5);


Я пишу в шторме $var-> и мне среда не показывает никаких вариантов продолжения. Есть только какой-то несогласованный набор функций для работы с массивами и строками, которые трудно запомнить.

Есть ли библиотеки, содержащие ООП-варианты строк и массивов?
Есть ли в планах разработчиков языка добавить их в стандарт языка?
  • Вопрос задан
  • 2433 просмотра
Подписаться 2 Простой 1 комментарий
Ответ пользователя profesor08 К ответам на вопрос (6)
profesor08
@profesor08 Куратор тега PHP
Сделай свою обертку, это не сложно, для начала внеси нужные тебе функции, потом дополняй по необходимости. В пхп есть все необходимое для этого.

class Str {
    
    private $string = "";
    
    public function __construct($string = "") {
        $this->string = strval($string);
    }
    
    public function __toString() {
        return $this->string;
    }
    
    public function length() {
        return mb_strlen($this->string);
    }
    
    public function substr($start, $length = null) {
        return new static(mb_substr($this->string, $start, $length));
    }
}

$string = new Str("qwertyuiop");

echo $string . "\n";
echo $string->length() . "\n";
echo $string->substr(-3) . "\n";
Ответ написан