Задать вопрос
humiliation
@humiliation
Чем больше знаю - тем больше дурак

Где перезаписывается переменная?

Привет.

Есть такой код:

case 'order':
        $orderObj = new orderHandler($first_name, $last_name, $phone, $adress, $email, $message, $order);
        $msg = "Имя: {$orderObj->getFirstName()} <br>";
        $msg .= "Телефон: {$orderObj->getPhone()} <br>";
        $msg .= "Заказ: {$orderObj->getOrder(false)} <br>";
        $msg .= "Адрес: {$orderObj->getAdress()} <br>";
        break;
}

$arOrder = [
    'order' => $orderObj->getOrder(false),
];


И есть метод:

public function getOrder($toString){
            $order_string = $this->order;
        if($toString){
            $ar = array();
            foreach($order_string as $item){
                if($item == ''){
                    unset($item);
                }
                else{
                    $ar[] = $item;
                }
            }
            $order_string = implode(',', $ar);
            return $order_string;
        }else{
            return $this->order;
        }

    }


Суть вот в чем: если я один раз вызываю метод $orderObj->getOrder(false), то все работает как надо - на выходе имею либо почищенный массив, либо строчку, сколь угодно раз.
Но стоит вызвать где-нибудь еще, так начинается катавасия - то нотис вылезет, что пытаюсь массив в строку перевести, то наоборот.

Собственно, вывода в любом случае нужно будет 2 - одно для сообщения, а другое для отправки в панель обработки заказов, ткните меня носом в что я делаю не так

пс в методе повводил кучу переменных, думал что напрямую обращаясь к свойству его перезаписываю, но что-то не сработало
  • Вопрос задан
  • 163 просмотра
Подписаться 1 Оценить 4 комментария
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
У Вас есть объект orderHandler в нем видимо (вы не привели код всего класса) есть публичная переменная order. При первом вызове она массив, при втором строка. Что там конкретно - хз. Дайте весь код или при каждом обращении создавайте новый инстанс объекта.
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
VAR_DUMP в руки и вперед, в данном участке кода происходит много чего "за кадром", пока не узнаете где поменялось значение тыкать пальцем в разные стороны бесполезно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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