Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: начал разбираться с классами помогите понять

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: начал разбираться с классами помогите понять
3d_killer
Отправлено: 17 Августа, 2013 - 11:58:11
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




Раньше дело с ООП не имел... пользуюсь книгой ООП на php 5 (Peter Lavin)
PHP:
скопировать код в буфер обмена
  1. class DirectoryItems
  2.         {
  3.                 private $filearray=array();     //глобальная переменная
  4.                 //Конструктор
  5.                 public function __construct($directory)
  6.                         {
  7.                                 $d='';
  8.                                 $this->directory=$directory;
  9.                                 if (is_dir($directory)) //если директория существует
  10.                                         {
  11.                                                 $d=opendir($directory) or die("Не удалось открыть каталог"); //открываем директорию
  12.                                                 while ($f=readdir($d))
  13.                                                         {
  14.                                                                 if(is_file("$directory/$f"))
  15.                                                                         {
  16.                                                                                 $this->filearray[]=$f;
  17.                                                                         }      
  18.                                                         }
  19.                                                 closedir($d);
  20.                                         }
  21.                                 else
  22.                                         {
  23.                                                 die("Нужно передать имя каталога");    
  24.                                         }
  25.                         }
  26.                 //функция передачи переменной
  27.                 public function getFilearray()
  28.                         {
  29.                                 return $this->filearray;
  30.                         }
  31.                 //Конец конструктора
  32.                 //Выбрать только изображения
  33.                 public function images_Only()
  34.                         {
  35.                                 $types=array("jpg","bmp","gif","png","jpeg");
  36.                                 foreach ($this->filearray as $key => $value)
  37.                                         {
  38.                                                 $extension=substr($value,(strpos($value, ".")+1));
  39.                                                 $extension=strtolower($extension);
  40.                                                 if (!in_array($extension, $types))
  41.                                                         {
  42.                                                                 unset($this->filearray[$key]);
  43.                                                         }
  44.                                         }
  45.                         }
  46.                 //Удаление фильтра
  47.                 public function removeFilter()
  48.                         {
  49.                                 unset($this->filearray);
  50.                                 $d="";
  51.                                 $d=opendir($this->directory) or die("Не удалось открыть каталог"); //открываем директорию
  52.                                 while ($f=readdir($d))
  53.                                         {
  54.                                                 if(is_file("$directory/$f"))
  55.                                                         {
  56.                                                                 $this->filearray[]=$f;
  57.                                                         }      
  58.                                         }
  59.                                 closedir($d);
  60.                         }
  61.         }              
  62. //ВЫВОД
  63. $class_new = new DirectoryItems('image'); //создаем объект
  64.  
  65. $return = $class_new->getFilearray();
  66. foreach ($return as $key => $value) //раскладываем и выводим список файлов
  67.         {
  68.                 echo($key." - ".$value."<br>");
  69.         }
  70.  
  71. $class_new->images_Only(); //Выбираем только изображения
  72. $return = $class_new->getFilearray();
  73. echo("<br>");
  74. foreach ($return as $key => $value) //раскладываем и выводим список файлов
  75.         {
  76.                 echo($key." - ".$value."<br>");
  77.         }
  78. $class_new->removeFilter(); //Удалить фильтр
  79. $return = $class_new->getFilearray();
  80. echo("<br>");
  81. foreach ($return as $key => $value) //раскладываем и выводим список файлов
  82.         {
  83.                 echo($key." - ".$value."<br>");
  84.         }


удалить фильтр выдает ошибку:

PHP:
скопировать код в буфер обмена
  1.  
  2. Warning: Invalid argument supplied for foreach() in Z:\home\SMC\www\index.php on line 83
  3.  

и по самому коду хотел спросить правильно ли я его пишу? заранее благодарю
 
My status
 Top
soffrick
Отправлено: 17 Августа, 2013 - 12:10:31
Post Id



Посетитель


Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012  
Откуда: Россия, Москва


Помог: 17 раз(а)




пиши на JAVASCRIPT, он полностью ООП. Говорят хочешь понять ООП - учи JAVASCRIPT


-----
Правильный вопрос - уже половина правильного ответа!

p.s. индусы повсюду, будьте осторожны!
 
 Top
3d_killer
Отправлено: 17 Августа, 2013 - 12:13:05
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




мне нужно PHP JAVA пользуюсь немного
 
My status
 Top
soffrick
Отправлено: 17 Августа, 2013 - 12:21:37
Post Id



Посетитель


Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012  
Откуда: Россия, Москва


Помог: 17 раз(а)




3d_killer пишет:
Warning: Invalid argument supplied for foreach()

ну и чтож такие глупые ошибки выкладываешь? ООП это парадигма, а не другой какой-то ЯП
(Добавление)
3d_killer пишет:
images_Only(); //Выбираем только изображения

код вроде самодокументирован, к чему оверхед комментов?

(Отредактировано автором: 17 Августа, 2013 - 12:24:12)



-----
Правильный вопрос - уже половина правильного ответа!

p.s. индусы повсюду, будьте осторожны!
 
 Top
Мелкий Супермодератор
Отправлено: 17 Августа, 2013 - 12:32:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




soffrick пишет:
пиши на JAVASCRIPT, он полностью ООП.

Никогда такого не было. JS прототипно-ориентированный ЯП.
Говорят, если хочешь понять ООП - учи Java. Вот кто ООП до мозга костей.


-----
PostgreSQL DBA
 
 Top
DelphinPRO
Отправлено: 17 Августа, 2013 - 12:33:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




soffrick пишет:
пиши на JAVASCRIPT, он полностью ООП. Говорят хочешь понять ООП - учи JAVASCRIPT
Ха-ха слышал звон, да не знаю где он...


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
soffrick
Отправлено: 17 Августа, 2013 - 12:33:20
Post Id



Посетитель


Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012  
Откуда: Россия, Москва


Помог: 17 раз(а)





Мелкий
Вы по ссылке переходили ? Улыбка


Мелкий пишет:
ООП до мозга костей

ну или ООП головного мозга Улыбка

(Добавление)
DelphinPRO пишет:
слышал звон, да не знаю где он...

да я ваще не знаю шо такоэ серверный и клинтский изык

(Отредактировано автором: 17 Августа, 2013 - 12:34:44)



-----
Правильный вопрос - уже половина правильного ответа!

p.s. индусы повсюду, будьте осторожны!
 
 Top
NoPaper
Отправлено: 17 Августа, 2013 - 12:33:47
Post Id



Посетитель


Покинул форум
Сообщений всего: 315
Дата рег-ции: Янв. 2012  
Откуда: Минск


Помог: 9 раз(а)




если не знаешь, не берись
читай мануалы, форумы, пытайся по максимуму разобраться
разленился народ, чуть что - сразу на форум писать
вот за пару дней не увидел ни одного интересного вопроса...

soffrick пишет:
JAVASCRIPT
3d_killer пишет:
JAVA

и что сие аббревиатуры значат?
 
 Top
soffrick
Отправлено: 17 Августа, 2013 - 12:35:30
Post Id



Посетитель


Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012  
Откуда: Россия, Москва


Помог: 17 раз(а)




NoPaper пишет:
и что сие аббревиатуры значат

для тс это одно и тоже


-----
Правильный вопрос - уже половина правильного ответа!

p.s. индусы повсюду, будьте осторожны!
 
 Top
Мелкий Супермодератор
Отправлено: 17 Августа, 2013 - 12:35:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)





soffrick пишет:
Вы по ссылке переходили ?

Извиняюсь, не признал ссылку вовсе. Решил, что это обычное подчёркивание. Смущение


-----
PostgreSQL DBA
 
 Top
soffrick
Отправлено: 17 Августа, 2013 - 12:38:12
Post Id



Посетитель


Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012  
Откуда: Россия, Москва


Помог: 17 раз(а)




а вообще
тс пишет:

Notice: Undefined property: DirectoryItems::$filearray in
и как следствие


Warning: Invalid argument supplied for foreach() in
(Добавление)
РЕШЕНИЕ ОЧ простое
PHP:
скопировать код в буфер обмена
  1.                                 $this->filearray = array();


-----
Правильный вопрос - уже половина правильного ответа!

p.s. индусы повсюду, будьте осторожны!
 
 Top
3d_killer
Отправлено: 17 Августа, 2013 - 12:39:46
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




soffrick
это я для себя его подписывал, так ошибка то в сбросе фильтра где может скажет кто?
 
My status
 Top
soffrick
Отправлено: 17 Августа, 2013 - 12:39:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012  
Откуда: Россия, Москва


Помог: 17 раз(а)




http://forum.php.su/topic.php?fo...mp;v=#1376731684
отрывать руки за отключение нотисов!
Саныч пишет:
Я за такую "фигню" руки отрывал бы.

(Добавление)
3d_killer пишет:
ошибка то в сбросе фильтра где может скажет кто?

научись отлаживать свой код
(Добавление)
хотябы узнай что есть функция var_dump()!


Спойлер (Отобразить)

(Добавление)
3d_killer пишет:
$class_new = new DirectoryItems('image'); //создаем объект

небось папку то рядом со скриптом не создал Ха-ха Ха-ха


-----
Правильный вопрос - уже половина правильного ответа!

p.s. индусы повсюду, будьте осторожны!
 
 Top
3d_killer
Отправлено: 17 Августа, 2013 - 12:52:23
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




создал нашел просто не передал переменную
PHP:
скопировать код в буфер обмена
  1. $class_new->removeFilter('image'); //Удалить фильтр
 
My status
 Top
soffrick
Отправлено: 17 Августа, 2013 - 12:52:33
Post Id



Посетитель


Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012  
Откуда: Россия, Москва


Помог: 17 раз(а)




3d_killer пишет:
сбросе фильтра где может скажет кто?

undefined variable directory, dancing here!
if(is_file("$directory/$f"))
(Добавление)

сложно включить вывод нотисов, да?
и почему за тебя должны отлаживать твой код, который ты даже не попытался понять и отладить?


-----
Правильный вопрос - уже половина правильного ответа!

p.s. индусы повсюду, будьте осторожны!
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB