Ошибка в PHP “Object of a class couldn't be converted to a string”

152
27 марта 2019, 23:10

Всем привет! Столкнулся со странной для меня ошибкой, имеется код:

class DB {
    ...
}
$db = new DB;
class MyClass {
    private $db;
    function __construct {
        global $db;
        //Пытаюсь взять объект $db по ссылке, чтобы не прописывать для каждой функции global $db
        $this->$db =& $db; //Здесь получаю ошибку "Object of a class DB couldn't be converted to a string"
    }
    ...
}

Подскажите, в чём моя ошибка?

Answer 1

Ваша ошибка в записи $this->$db. В данном случае ->$db обозначает доступ к свойству объекта с именем, содержащимся в переменной $db (если провести аналогию с массивами? то $this[$db]).

Вам же нужно заменить эту строку на простое $this->db = &$db;

зы: не используйте global переменную. передавайте подключение в качестве параметра конструктора __construct($db)

READ ALSO
Как прибавить число к последнему числу в строке

Как прибавить число к последнему числу в строке

Есть какое то определенное значение, получаю последнее в нем число, если оно есть прибавляю к нему 1

161
Чат на php и mysql

Чат на php и mysql

Пишу чат на php, сообщения отправляются в базу данных mysql и получается достать их оттуда, но проблема в том, что не получается вывести email того...

163
Что делает эта функция preg_replace_callback?

Что делает эта функция preg_replace_callback?

preg_replace_callback("/&#(\d+);/", array($this, "chr"), $strQuery);

131
Как случайно не удалить базу данных? [закрыт]

Как случайно не удалить базу данных? [закрыт]

Как правильно делать запрос, чтобы не удалить базу данных? Слышал, некоторые умудряются с помощью ошибочного запроса удалить базу данных,...

147