Есть ли способ рассказать PHP о том, как преобразовать объекты в ints? В идеале это будет выглядеть примерно такЕсть ли целочисленный эквивалент __toString()
class ExampleClass
{
...
public function __toString()
{
return $this->getName();
}
public function __toInt()
{
return $this->getId();
}
}
Я понимаю, что это не поддерживается в этой точной форме, но есть простой (не так Hacky) обходной путь?
---------------------- EDIT EDIT EDIT ---------------------- --------
Спасибо всем! Основная причина, по которой я смотрю на это, - это сделать некоторые классы (генераторы форм, классы меню и т. Д.) Использовать объекты вместо массивов (uniqueId => description). Это достаточно легко, если вы решите, что они должны работать только с этими объектами или только с объектами, которые расширяют какой-то общий суперкласс класса.
Но я пытаюсь посмотреть, есть ли средняя дорога: в идеале мои классы инфраструктуры могут принимать пары целых строк или объекты с методами getId() и getDescription(). Поскольку это то, что должно было произойти с кем-то еще, прежде чем я хотел бы использовать комбинированные знания stackoverflow, чтобы узнать, есть ли стандартный/наилучший способ сделать это , который не сталкивается с стандартной библиотекой php, общие рамки и т. д..
Я не знаю, как PHP будет знать разницу ? __toString() используется, когда объект напрямую выводится, а не только тип. –
Вы можете сделать класс «Объект», например, на Java, и получить от него все, что есть, а затем реализовать переопределяемый метод. – Raveline
@Phil К счастью, я использую 5.3, поэтому у меня больше нет этой проблемы :) http://php.net/manual/en/language.oop5.magic.php#language.oop5.magic.tostring –