Где перезаписывается переменная? Привет.
Есть такой код: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 - одно для сообщения, а другое для отправки в панель обработки заказов, ткните меня носом в что я делаю не так
пс в методе повводил кучу переменных, думал что напрямую обращаясь к свойству его перезаписываю, но что-то не сработало

21 Авг 2019 в 07:02
191 +1
1
Ответы
1

Переменная $orderObj->order не перезаписывается в вашем коде. В методе getOrder($toString) вы просто обрабатываете значение свойства $order объекта $orderObj и возвращаете его, но само значение $order не изменяется.

Если вы хотите изменить значение свойства $order объекта $orderObj, то вам нужно это сделать явно в методе или добавить метод для установки нового значения $order. Например:

public function setOrder($newOrder) {
$this->order = $newOrder;
}
// где-то в коде
$orderObj->setOrder($newOrder);

Таким образом, если вам нужно изменить значение $order объекта $orderObj и использовать его измененное значение в разных местах кода, вам следует добавить методы для установки и получения значения $order.

20 Апр в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 436 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир