ООП возврат строки

155
20 октября 2021, 23:50

Имеется класс

class Main{
    private $num;
    function num(){
        $value = 40000;
        $this->num = $value;
        return $this;
    }
    function format(){
        return number_format($this->num, 0, '.', ' ');
    }
}

Если делаю вызов

echo (new Main)->num()->format(); // выведет 40 000

Как сделать возврат не отформатированного значения

echo (new Main)->num(); // должно вернуть 40000
Answer 1

public __toString ( void ) : string

Метод __toString() позволяет классу решать, как он должен реагировать при преобразовании в строку. Например, что вывести при выполнении echo $obj;. Этот метод должен возвращать строку, иначе произойдёт фатальная ошибка уровня E_RECOVERABLE_ERROR.

добавлем в объявление класса

function __toString() { return (string)$this->num; }

и теперь

echo (new Main)->num(); // 40000

Но обратите внимание, что эта функция вернет строку, а не число

demo

READ ALSO
запись объекта в массив

запись объекта в массив

на вход поступает объект, нужно записать в сsv файл, преобразовав объект в массив

95
Как вывести меню в WorPress

Как вывести меню в WorPress

Есть меню которое состоит из рубрикНужно

197
Вопрос по Сессиям

Вопрос по Сессиям

Как правильно разлогинить юзера по кнопке Выход ? Через session_destroy или session_unset

103