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
Форумы портала PHP.SU :: Версия для печати :: Очень нужна помощь(((
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Очень нужна помощь(((

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

1. N.ton - 20 Октября, 2011 - 10:24:46 - перейти к сообщению
кусок кода:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. class Portfolio extends Widget
  3. {                
  4.        
  5.         // путь к папке с изображениями
  6.         var $directory = "files/portfolio";
  7.         // адрес страницы портфолио
  8.         var $path = "/pages/portfolio/";
  9.         // Путь до "thumbs.php" (создает миниатюры)
  10.         var $thumb_path = "dxmods/gallery/thumb_gen.php";
  11.         // открываем папку с изображениями
  12.         var $scan = opendir($directory);
  13.         // Массив для записи папок (категорий) портфолио. По умолчанию отображает содержимое корневой папки.
  14.         var $folders = array();
  15.  


на строке var $scan = opendir($directory); появляется ошибка
syntax error, unexpected '(', expecting ',' or ';'

синтаксис вроде верный. кто-нибудь может объяснить в чем проблема?
2. Мелкий - 20 Октября, 2011 - 10:31:17 - перейти к сообщению
Нет, синтаксис неверен.
Свойство класса не может инициализироваться функцией.

Выкиньте инициализацию этого свойства в конструктор.

+ синтаксис var - устаревший, используйте public, private или protected
3. Stierus - 20 Октября, 2011 - 10:31:43 - перейти к сообщению
вы пытаетесь запустить выполнение opendir($directory); вне методов класса. сделайте

PHP:
скопировать код в буфер обмена
  1. class Portfolio extends Widget
  2. {                
  3.        
  4.         // путь к папке с изображениями
  5.         public $directory = "files/portfolio";
  6.         // адрес страницы портфолио
  7.         public $path = "/pages/portfolio/";
  8.         // Путь до "thumbs.php" (создает миниатюры)
  9.         public $thumb_path = "dxmods/gallery/thumb_gen.php";
  10.         // открываем папку с изображениями
  11.         public $scan = null;
  12.         // Массив для записи папок (категорий) портфолио. По умолчанию отображает содержимое корневой папки.
  13.         public $folders = array();
  14.  
  15.         public function __construct(){
  16.                 parent::__construct();
  17.                 $this->scan = opendir($directory);
  18.         }


Все переменные нужно инициализировать в методах класса

ps
var - плохо, public | private | protected -хорошо
(Добавление)
Мелкий, почти слово в словоУлыбка
4. N.ton - 20 Октября, 2011 - 10:45:38 - перейти к сообщению
теперь страница грузится, но на строчке
$this->scan = opendir($directory);
выдает
Notice: Undefined variable: directory in

(((
5. Stierus - 20 Октября, 2011 - 10:53:42 - перейти к сообщению
да, сори, не $directory, а $this->directory
(Добавление)
блин, надо было вам как домашнее задание оставить
6. N.ton - 20 Октября, 2011 - 11:03:31 - перейти к сообщению
Вот) спасибо большое)

 

Powered by ExBB FM 1.0 RC1