Преобразование типов пользовательских классов в php

Рейтинг: 0Ответов: 1Опубликовано: 18.05.2011

Есть ли в php возможность приводить пользовательские классы к стандартным типам переменных? То, есть, чтобы можно было сделать примерно так:

<?
class myClass{
    var $str;

    function myClass($str)
    {
        $this->str = $str;
    }

    function boolean(){
        return strlen($this->str);
    }

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

$mc = new myClass('string');
if($mc)
    echo "String '$mc' is not empty.";
else
    echo "String is empty."
?>

Искал в нете ответ, но, видимо, плохо искал.

Ответы

▲ 2Принят

Да. Вы абсолютно правы!

но, видимо, плохо искал.

Нужно объявить "магический" метод. __toString.

...

    function __toString(){
        return $this->str;
    }
...
$mc = new myClass('string');
echo "String '$mc' is not empty.";

К сожалению это работает только для строк.