Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 53

Не могу сохранить данные в классе

25.01.2012, 13:33. Показов 2271. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!!! Не могу сохранить данные в классе.
Сам класс
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Variable
{
  public $Erorr;
  public $Data;
  function setData($Data)
  {
    $this->Data=$Data;
  }
  function setErorr($Erorr)
  {
    $this->Erorr=$Erorr;
  }
  function getData()
  {
    return $this->Data;
  }
  function getErorr()
  {
   for($i=0;$i<count($this->Erorr)+5;$i++)
   {
     if(!empty($this->Erorr[$i]))
     {
       printf("%s<br>",$this->Erorr[$i]);
     }
   }
  }
}
Заполняю масив
PHP
1
2
$myobjvariable->Erorr=$Erorr;
$myobjvariable->Data=$Data;
Вызываю класс.

PHP
1
2
3
$myobjvariable = new Variable();
$myobjvariable->setErorr($myobjvariable->Erorr);
$myobjvariable->setData($myobjvariable->Data);
На другой странице

PHP
1
2
3
$myobjVariable = new Variable();
$myobjVariable->getErorr();
$MData=$myobjVariable->getData();
Данные не выводятся что делать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.01.2012, 13:33
Ответы с готовыми решениями:

Не могу сохранить данные в БД
Здравствуйте! У меня такая вот проблемка. Мне нужно заполнить SQL server базу данных с файла. Решил для начала не парится и брать не именно...

Не могу сохранить данные
Ч/з программу Recover my Files нашла свои утерянные данные,но как их сохранить и вложить в ту же папку,откуда случайно удалила.Эта...

Не могу сохранить данные в базу
Здравствуйте. Использую wampserver. Настроил подключение, все отображает. Проблема заключается в следующем: не могу сохранить данные...

18
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
25.01.2012, 13:54
подвестку синтаксиса для кого делали , это еще не ответ , прост нечитабельно

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class Variable
{
 public $Erorr;
 public $Data;
 
 function setData($Data)
 {
  $this->Data=$Data;
 }
 
 function setErorr($Erorr)
 {
  $this->Erorr=$Erorr;
 }
 
 function getData()
 {
  return $this->Data;
 }
 
 function getErorr()
 {
  for ( $i=0; $i < count( $this->Erorr )+5; $i++)
   {
    if(!empty($this->Erorr[$i]))
     {
      printf("%s<br>",$this->Erorr[$i]);
     }
   }
 }
 
}
Заполняю масив
PHP
1
2
$myobjvariable->Erorr=$Erorr;
$myobjvariable->Data=$Data;
Вызываю класс.

PHP
1
2
3
$myobjvariable = new Variable();
$myobjvariable->setErorr($myobjvariable->Erorr);
$myobjvariable->setData($myobjvariable->Data);
На другой странице

PHP
1
2
3
$myobjVariable = new Variable();
$myobjVariable->getErorr();
$MData=$myobjVariable->getData();
0
Заблокирован
25.01.2012, 13:58
Dmitriy78781, не мог бы ты нормально оформить, что бы стало понятно где заканчивается класс, а где ты его вызываешь? И вероятно необходимо включить файл класса во второй странице.
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
25.01.2012, 14:03
какой еще массив вы заполняете , когда по коду это объект .
PHP
1
$myobjvariable->Erorr=$Erorr;
и для кого вы делали сетеры если их не юзаете .
следующий фрагмент вообще нелогичен
PHP
1
$myobjvariable = new Variable();
вы сделали объект класа назвав его myobjvariable
PHP
1
$myobjvariable->setErorr($myobjvariable->Erorr);
задаёте значение переменной $myobjvariable->Erorr через метод , текущее значение этой же переменно которой нет

что вообще за бред это ? обьясните нормально
0
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 53
25.01.2012, 14:13  [ТС]
На первой странице
PHP
1
2
3
4
5
6
include_once "Source/Class/ClassVariable.php";
$myobjvariable = new Variable();
$myobjvariable->Erorr=$Erorr;
$myobjvariable->Data=$Data;
$myobjvariable->setErorr($myobjvariable->Erorr);
$myobjvariable->setData($myobjvariable->Data);
На второй странице
PHP
1
2
3
4
include_once "Source/Class/ClassVariable.php";
$myobjVariable = new Variable();
$myobjVariable->getErorr();
$MData=$myobjVariable->getData();
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
25.01.2012, 14:18
1.
PHP
1
2
$myobjvariable->Erorr=$Erorr;
$myobjvariable->Data=$Data;
и
PHP
1
2
$myobjvariable->setErorr($myobjvariable->Erorr);
$myobjvariable->setData($myobjvariable->Data);
одно и тоже
2.
класс не сохраняет в себе данные как база данных , юзайте сессию если нужно чтоб переменные не терялись при переходе на другии страницы
0
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 53
25.01.2012, 15:13  [ТС]
После инклуда сесия не работает!
0
Заблокирован
25.01.2012, 15:18
Цитата Сообщение от crautcher Посмотреть сообщение
public $Erorr;
public $Data;
Зачем делать поля класса паблик?
0
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
25.01.2012, 15:38
Dmitriy78781, тебе надо передавать данные при переходе по страницам.
Сделать это действительно можно либо сессией, либо каким-то ухищрением

А если тебе надо в двух классах использовать одно и тоже, то передавай объект полностью.
0
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 53
25.01.2012, 16:19  [ТС]
Подскажите пожалуйста как это сделать.
0
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
25.01.2012, 16:22
Тебе надо перейти на одну страницу, там заполнятся данные и потом при переходе на другую страницу ты хочешь посмотреть ошибки, так?
0
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 53
25.01.2012, 16:56  [ТС]
Как передать объек класса в PHP?
0
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
25.01.2012, 16:58
PHP
1
$myobjvariable = new Variable();
$myobjvariable - это уже объект. Прямо так и передавай.
0
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 53
25.01.2012, 17:37  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class Variable
{
  public $Erorr;
  public $Data;
  public $Obj;
  function setData($Data)
  {
    $this->Data=$Data;
  }
  function setErorr($Erorr)
  {
    $this->Erorr=$Erorr;
  }
  function getObj()
  {
    return $this->Obj;
  }
  function setObj($Obj)
  {
    $this->Obj=$Obj;
  }
  function getData()
  {
    return $this->Data;
  }
  function getErorr()
  {
    for($i=0;$i<count($this->Erorr)+5;$i++)
    {
      if(!empty($this->Erorr[$i]))
      {
        printf("%s<br>",$this->Erorr[$i]);
      }
    }
  }
}
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
include_once "ClassVariable.php";
$myobjVariable = new Variable();
$Data[0]='Введите данные';
$Data[1]='Данные не верны';
$myobjVariable->setData($Data);
$myobjVariable->setObj($myobjVariable);
$myobjV = new Variable();
$o=$myobjV->getObj();
$Ma=$o->getData();
if(!empty($Ma))
{
  printf("%s<br>",$Mass[0]);
}
else
{
 echo "NotGood";
}
Выдает ошибку.
Call to a member function getData() on a non-object
0
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
25.01.2012, 17:44
Само собой. Потому что ты создал еще экземпляр Variable(); А он пустой!

Прочитай про getInstance();

Создавай свой объект не как new Variable, а через $myObjVariable = Variable::getInstance();

в свою очередь getInstance() должен быть таким:

PHP
1
2
3
4
public function getInstance()
{
return self;
}
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
25.01.2012, 17:47
Цитата Сообщение от Dmitriy78781 Посмотреть сообщение
PHP
1
2
3
$myobjVariable->setObj($myobjVariable);
$myobjV = new Variable();
$o=$myobjV->getObj();
Кладете на полку, а достать пытаетесь из-под дивана. Это ж два разных объекте со своими личными $Obj .

Добавлено через 59 секунд
Цитата Сообщение от KoIIIeY Посмотреть сообщение
PHP
1
return self;
PHP
1
return new self();
Только смысл в этом? Тот же новый каждый раз объект.
0
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
25.01.2012, 17:50
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Кладете на полку, а достать пытаетесь из-под дивана. Это ж два разных объекте со своими личными $Obj .

PHP
1
return new self();
Только смысл в этом? Тот же новый каждый раз объект.
В том и дело, что нет. Не надо new. Надо вернуть себя.

Добавлено через 1 минуту
Ну или я под вечер дурак и устал мне кажется что должно работать.
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
25.01.2012, 18:07
Цитата Сообщение от KoIIIeY Посмотреть сообщение
return self;
Цитата Сообщение от KoIIIeY Посмотреть сообщение
В том и дело, что нет. Не надо new. Надо вернуть себя.
Тогда в таком контексте self будет константой, а не классом. В этом одна из бед PHP - смысл идентификатора определяет синтаксисом. Они же все в разных таблицах имен живут:
PHP
1
2
3
4
echo $foo; // переменная
echo foo; // константа
echo foo(); // функция
echo new foo(), foo::bar(); // класс
0
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 53
25.01.2012, 18:36  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
include_once "ClassVariable.php";
$myObjVariable = new Variable();
$Data[0]='Введите данные';
$Data[1]='Данные не верны';
$myObjVariable->setData($Data);
$myObjV = Variable::getInstance();
$Mass=$myObjV->getData();
if(!empty($Mass))
{
  printf("%s<br>",$Mass[0]);
}
else
{
 echo "NotGood";
}
Call to a member function getData() on a non-object
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.01.2012, 18:36
Помогаю со студенческими работами здесь

Не могу сохранить данные в базу данных mysql
У меня есть объект DataGridView, в который я загружаю данные из базы данных,а после меняю данные в DataGridView. Как мне сохранить...

Не могу сохранить данные форму Visual Studio при их изменении
Здравствуйте. Очень нужна ваша помощь. Я создал базу данных в аксессе, импортировал её в Visual studio 2017. В ней создал формы каждой...

Не могу сохранить данные при событии onChange="document.form.submit();"
Здраствуйте, подскажите пожалуйста как мне быть: Устала биться, идейку подкиньте... Пишу на php Реализую по SELECT обновление...

Сохранить изображение созданное в классе?
Друзья, оч слаб на уровне классов еще в php подскажите как получить изображение. Есть некий класс LImageHandler.php для работы с...

Как в Java-классе сохранить сообщение об ошибке?
срочно нужно решить проблему: Я делаю валидацию собственным методом (не ActionForm (ValidatorForm)). У меня просто нет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru