Где перезаписывается переменная? Привет. Есть такой код:case 'order': $orderObj = new orderHandler($first_name, $last_name, $phone, $adress, $email, $message, $order); $msg = "Имя: {$orderObj->getFirstName()} "; $msg .= "Телефон: {$orderObj->getPhone()} "; $msg .= "Заказ: {$orderObj->getOrder(false)} "; $msg .= "Адрес: {$orderObj->getAdress()} "; 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 - одно для сообщения, а другое для отправки в панель обработки заказов, ткните меня носом в что я делаю не так пс в методе повводил кучу переменных, думал что напрямую обращаясь к свойству его перезаписываю, но что-то не сработало
Переменная $orderObj->order не перезаписывается в вашем коде. В методе getOrder($toString) вы просто обрабатываете значение свойства $order объекта $orderObj и возвращаете его, но само значение $order не изменяется.
Если вы хотите изменить значение свойства $order объекта $orderObj, то вам нужно это сделать явно в методе или добавить метод для установки нового значения $order. Например:
public function setOrder($newOrder) { $this->order = $newOrder; } // где-то в коде $orderObj->setOrder($newOrder);
Таким образом, если вам нужно изменить значение $order объекта $orderObj и использовать его измененное значение в разных местах кода, вам следует добавить методы для установки и получения значения $order.
Переменная $orderObj->order не перезаписывается в вашем коде. В методе getOrder($toString) вы просто обрабатываете значение свойства $order объекта $orderObj и возвращаете его, но само значение $order не изменяется.
Если вы хотите изменить значение свойства $order объекта $orderObj, то вам нужно это сделать явно в методе или добавить метод для установки нового значения $order. Например:
public function setOrder($newOrder) {$this->order = $newOrder;
}
// где-то в коде
$orderObj->setOrder($newOrder);
Таким образом, если вам нужно изменить значение $order объекта $orderObj и использовать его измененное значение в разных местах кода, вам следует добавить методы для установки и получения значения $order.