za4me
@za4me
Человек

Почему конструктор не возвращает строку?

Добрый день.

Имею вот такой код:
class ClassName
{
	function __construct($text)
	{
		return "sometext $text";
	}
}

echo $text = new ClassName('new text');

Получаю ошибку: Catchable fatal error: Object of class ClassName could not be converted to string in D:\USR\www\s1.localhost\test\test2.php on line 13

Выполняю:
var_dump($text);

// получаю
object(ClassName)#1 (0) { }

т.е. конструктор вернул объект, а не строку

Прогуглил и почитал доку, если правильно понял, то в моем примере $text просто объект ClassName, конструктор вызвался, обработался и затих, а $text так и держит экземпляр класса. Но если честно не до конца понял всей логики.
  • Вопрос задан
  • 146 просмотров
Решения вопроса 1
kylt_lichnosti
@kylt_lichnosti
Пожалуйста: ссылка

<?php
 
// your code goes here
 
class ClassName
{
  function __construct($text = '')
  {
    return "sometext $text";
  }
}
 
$obj = new ClassName();
echo $obj->__construct('new text');
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@krypt3r
<?php
class ClassName
{
    function __construct($text)
    {
        return "sometext $text";
    }

    function __toString()
    {
        return 'Чертовы извращенцы.';
    }
}

echo new ClassName('new text');
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы