Call to a member function __toString()

Вопросы, не относящиеся ни к одному разделу

Call to a member function __toString()

Сообщение guyasyou » 29 май 2013, 22:43 ,  »  Сообщение:#1

У юзера вылазит эта ошибка при покупке товара.
Код: Выделить всё
Call to a member function __toString() on a non-object in /home/c/cl11542/embroideres/public_html/packages/core_commerce/controllers/checkout/shipping/address.php on line 22

Мой вопрос относительно __toString(), корректно ли название функции с этими "__"?
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: Call to a member function __toString()

Сообщение vbnm » 30 май 2013, 00:06 ,  »  Сообщение:#2

может вы скажите каким магазином пользуетесь, для начала?
vbnm
 
Сообщения: 462
Зарегистрирован: 02 июл 2011, 01:44

Re: Call to a member function __toString()

Сообщение Count_Raven » 30 май 2013, 12:10 ,  »  Сообщение:#3

vbnm писал(а):может вы скажите каким магазином пользуетесь, для начала?

Да он вроде один пока для Concrete5.
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Call to a member function __toString()

Сообщение Count_Raven » 30 май 2013, 12:13 ,  »  Сообщение:#4

guyasyou писал(а):У юзера вылазит эта ошибка при покупке товара.
Код: Выделить всё
Call to a member function __toString() on a non-object in /home/c/cl11542/embroideres/public_html/packages/core_commerce/controllers/checkout/shipping/address.php on line 22

Мой вопрос относительно __toString(), корректно ли название функции с этими "__"?

1. Посмотрите что у вас в adress.php на строке 22. Видимо у вас там не объект и нельзя у него вызвать метод __toString().
2. Методы, начинающиеся с __ обычно зарезервированы в PHP как "магические функции". Если вы хотите назвать свою функцию таким образом, но она не будет "магической", то лучше так не делать. Подробнее тут
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Call to a member function __toString()

Сообщение guyasyou » 30 май 2013, 12:33 ,  »  Сообщение:#5

ну в adress.php вызывается функция __toString(). ну раз синтакцис реален такой, то буду дампать...
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: Call to a member function __toString()

Сообщение Count_Raven » 30 май 2013, 13:33 ,  »  Сообщение:#6

guyasyou писал(а):ну в adress.php вызывается функция __toString(). ну раз синтакцис реален такой, то буду дампать...

Дело в том, у чего она вызывается?
Она вызывается у "не объекта". Т. е. у чего-то, у чего не может быть вызвана, у чего-то, у чего ее не существует. Возможно у пустой/не инициализированной переменной.
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Call to a member function __toString()

Сообщение guyasyou » 30 май 2013, 15:57 ,  »  Сообщение:#7

переменная->__toString() вот что там было, я знаю про ошибку, меня интересовал лишь вопрос по синтаксису __
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: Call to a member function __toString()

Сообщение vbnm » 31 май 2013, 00:45 ,  »  Сообщение:#8

Count_Raven писал(а):
vbnm писал(а):может вы скажите каким магазином пользуетесь, для начала?

Да он вроде один пока для Concrete5.


дык я опен картом интересуюсь )))
кто его знает, мож кто еще его привинчивает
vbnm
 
Сообщения: 462
Зарегистрирован: 02 июл 2011, 01:44

Re: Call to a member function __toString()

Сообщение Count_Raven » 31 май 2013, 09:42 ,  »  Сообщение:#9

guyasyou писал(а):переменная->__toString() вот что там было, я знаю про ошибку, меня интересовал лишь вопрос по синтаксису __

Вызывать магические функции напрямую вообще-то не очень обычно. Эта функция будет вызвана при обращении к этой переменной к примеру
echo переменная.

Эта функция создается для объекта (любой сущности), когда нужно вывести его строковое представление. Она может просто выдавать "Хрен", ну это так, к примеру. А может выдать любое другое представление.
Например, у меня есть объект "автомобиль", пусть это будет Auto.
Делаем так
Код: Выделить всё
$a = new Auto();
$a->set('Color', 'red');
$a->set('number', '12345');
echo $a;

Если у класса Auto определена магическая функция __toString, то она может быть выведет мне номер, а может цвет, как разработчик определит то, что для данного объекта представляет строковый вид. Т. е. как обработать попытку вывести объект обычным текстом.
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron