Доброго времени суток.
предположим существует класс, к переменной которого можно обратиться так: $myClass->variar, и она будет возвращать какое то число, например 3, которое можно использовать для различных действий, складывать вычитать присваивать, выводить и т д,
Внимание вопрос: возможна ли в php реализация класса, такая, что можно было бы при этом вызывать функцию следующим способом $myClass->variar->getAll();
1. reqyz - 06 Июня, 2016 - 10:02:35 - перейти к сообщению
2. Мелкий - 06 Июня, 2016 - 12:00:46 - перейти к сообщению
Это не несуществующая функция переменной класса, а метод объекта, ссылка на который сохранена в свойстве объекта.
Объект может вести себя при получении значения как строка с помощью метода __toString. Т.е. код валиден:
Объект может вести себя при получении значения как строка с помощью метода __toString. Т.е. код валиден:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- class bar
- {
- public function __toString()
- {
- return 'var';
- }
- public function getAll()
- {
- return 'anothervar';
- }
- }
- $foo = new bar();
- echo $foo;
- $anotherVar = $foo . 'bar';
- echo $foo->getAll();
Но __toString - это только получение значения. Менять объект вы по-прежнему должны вызовами методов или манипулированием с его свойствами.
Как число - на данный момент нет.