Объект для возврата свойства? - PullRequest
0 голосов
/ 29 августа 2011

У меня есть класс с именем Type:

class Type { ... }

Который имеет свойство с именем $value:

class Type {
    protected $value;

    //More code here...
}

Я хочу, чтобы при попытке использовать функцию, когда я передал объект, значение $obj->value было бы передано. Например:

$obj = new Type("value");
echo $obj; //Desired output: value

Я перепробовал много вещей и искал везде, но, похоже, не могу найти это. Это вообще возможно?

Спасибо заранее. :)

РЕДАКТИРОВАТЬ: Может быть, вы немного не поняли (или сузили) мой вопрос. Я хочу это для всех типов значений, а не только для строковых, включая int float и boolean

$obj = new Type(true);
echo !$obj; //Desired output: false

$obj2 = new Type(9);
echo ($obj + 1); //Desired output: 10

1 Ответ

4 голосов
/ 29 августа 2011

См .: Магические методы

class Type {
  public function __toString() {
    return (string)$this->value;
  }
}

Если ваше использование объекта не вызовет магию , вы всегда можете использовать:

$someVar = (string)$obj;

Обновление :

Помимо строк или массивов (см. Интерфейс ArrayAccess ), в настоящее время невозможно иметь объекты PHP, подобные предопределенным типы данных .

...