Хитрые классы на PHP 5.3 и 7

167
08 июля 2017, 11:02

Помогите, пожалуйста, понять,есть ли опечатка в задании из технического собеседования:

Обратите внимание на скобки после вызова $obj: $obj()-> Если это не ошибка, то как реализовать такой класс?

А здесь вообще непонятно: Как такое может быть реализовано?

Answer 1

Используется магический метод __invoke().

<?php
class SimpleClass
{
    public function __invoke()
    {
        return $this;
    }
    public function stdout ($str)
    {
        echo $str;
        return $this;
    }
}
$obj = new SimpleClass;
$obj()->stdout("Hello")->stdout(" world!");
<?php
class SimpleClass
{
    public function __invoke($str = PHP_EOL)
    {
        echo $str;
        return $this;
    }
}
(new SimpleClass)("Hello")()("world")()("!");
READ ALSO
Обработка пустых чекбоксов в php

Обработка пустых чекбоксов в php

Есть следующий html-код:

214
Достать все сообщения с публичного чата Telegram

Достать все сообщения с публичного чата Telegram

Как спарсить заданное пользователем количество сообщений с публичного чата Telegram?

330
Уникализация массива

Уникализация массива

Есть массив из двух элементов такого вида:

217