Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работа вывода элемента класса 
:(
    Опции темы
NetJunky
Дата 19.7.2009, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 11.5.2008
Где: Tallinn

Репутация: 0
Всего: 0



Всем привет!
У меня возникла проблема.
Имееться класс для валидации данных. Он состоит из набора переменных и набора функций. Переменные получают значения по средсвам конструктора.

В конце класса имеется функция для создания асоциативного массива, такого вида:
Код

function controledData() {
    $this->data = array (
        "knimi_inv" => knimiCheckInv(),
        "knimi_empty" => knimiCheckEmpt()
    );
    return $this->data;
}


Р.С. Все вункции в асоциативном массиве возвращают значения boolean.

В другом файле, где создаёться экземпляр класса, имеется код для вывода того асоциативного массива.
Код

foreach($valid->controledData() as $key => $value) echo $key." => ".var_dump($value)."<br />";


Но по какой-то причине ничего не выводиться, а только происходит прерывание вывода в том месте.
Если же указывать значения в асоциативном массиве явно, то всё работает.

Подскажите в чём может быть проблема и как можно её решить если использовать в асоциативном массиве в роле значений функции, которые должны возвращать true или false.

Это сообщение отредактировал(а) NetJunky - 19.7.2009, 15:26


--------------------
Sleep, those little slices of death; Oh how I loathe them. © Edgar Allan Poe
Таллиннцы http://vingrad.ru/groups.php?action=group_...mp;group_id=139

Для записи данных объёмом 1 Терабайт на бумагу, нужно срубить 50000 деревьев.
PM MAIL WWW ICQ Skype MSN   Вверх
lukas
Дата 19.7.2009, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



По всей видимости у вас сервер вообще не выводит сообщения об ошибках, поэтому и такое тихое прирывание...

А по делу, использовать в foreach можно только массивы в переменных, результаты функций для перебора значений использовать нельзя.

Код

$tmp = $valid->controledData();
foreach($tmp as $key => $value)



--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
NetJunky
Дата 19.7.2009, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 11.5.2008
Где: Tallinn

Репутация: 0
Всего: 0



lukas, тоесть как ключь, так и значение соответствующее, должны быть указаны явно?

Если, да, то как тогда можно сделать такой вариант чтобы возвраты из всех функций были в одном асоциативном массиве, чтобы имя функции ключь, а возвращённое значение этой функцией, есть значение ключа?
Подразумевается, что (все функции могут возвращать только true или false).


--------------------
Sleep, those little slices of death; Oh how I loathe them. © Edgar Allan Poe
Таллиннцы http://vingrad.ru/groups.php?action=group_...mp;group_id=139

Для записи данных объёмом 1 Терабайт на бумагу, нужно срубить 50000 деревьев.
PM MAIL WWW ICQ Skype MSN   Вверх
NetJunky
Дата 19.7.2009, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 11.5.2008
Где: Tallinn

Репутация: 0
Всего: 0



Up.


--------------------
Sleep, those little slices of death; Oh how I loathe them. © Edgar Allan Poe
Таллиннцы http://vingrad.ru/groups.php?action=group_...mp;group_id=139

Для записи данных объёмом 1 Терабайт на бумагу, нужно срубить 50000 деревьев.
PM MAIL WWW ICQ Skype MSN   Вверх
Sentox
Дата 20.7.2009, 06:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



Что показывает 
Код

var_dump($valid->controledData());

PM MAIL   Вверх
lukas
Дата 20.7.2009, 08:14 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



Цитата(NetJunky @  19.7.2009,  17:28 Найти цитируемый пост)
Если, да, то как тогда можно сделать такой вариант чтобы возвраты из всех функций были в одном асоциативном массиве, чтобы имя функции ключь, а возвращённое значение этой функцией, есть значение ключа?
Подразумевается, что (все функции могут возвращать только true или false). 


Ты меня не понял, ты можешь что угодно возвращать из функции (хоть массивы, хоть объекты), но в foreach подставлять для перебора вызовы функции (у которых результат массив) нельзя, т.е. нужно явно подставлять только переменные-массивы, поэтому необходимо приравнять результат твоей функции к переменной и использовать для перебора данную переменную.


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
NetJunky
Дата 20.7.2009, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 11.5.2008
Где: Tallinn

Репутация: 0
Всего: 0



lukas, я работал тут уже с экзампляром класса и попробовал сделать следующее

Код

$data = array(
            'knimiCheckInv' => $valid->knimiCheckInv(),
            'knimiCheckEmpt' => $valid->knimiCheckEmpt(),
            'mailCheck' => $valid->mailCheck()
        );
        
        echo var_export($data);


В тамком случае выводом стало.
Код

array ( 'knimiCheckInv' => false, 'knimiCheckEmpt' => true, 'mailCheck' => false, )



--------------------
Sleep, those little slices of death; Oh how I loathe them. © Edgar Allan Poe
Таллиннцы http://vingrad.ru/groups.php?action=group_...mp;group_id=139

Для записи данных объёмом 1 Терабайт на бумагу, нужно срубить 50000 деревьев.
PM MAIL WWW ICQ Skype MSN   Вверх
krundetz
Дата 20.7.2009, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



Цитата(lukas @  20.7.2009,  08:14 Найти цитируемый пост)
т.е. нужно явно подставлять только переменные-массивы

ты забыл про класс итератор
NetJunky, а вот эти функции
Код

knimiCheckInv()
......
knimiCheckEmpt()
......
mailCheck()

случайно не методы принадлежащие классу валидации данных?
если да то попробуй обращаться к ним вот так:
Код

$this->knimiCheckInv()
......
$this->knimiCheckEmpt()
......
$this->mailCheck()



--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0458 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.