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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
fabervox
Отправлено: 09 Октября, 2012 - 12:59:22
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Июль 2012  


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




Здравствуйте!
Я только учусь,тапками сильно не кидайте,поиск юзал,туторы читал,все равно не понял.

В общем мне нужно написать класс который будет дописывать информацию в php файл.
И если входящей информации нет, то записать из предопределенных св-в класса.
Написал вот это, но не пойму как исправить ошибки.
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. include ('FileCreateClass.php');
  4.  
  5. class WriteIndexArticle {
  6.         protected $Article = 'Пустая страница';
  7.         protected $ArticleIndexFile = 'IndexArticleFile.php';
  8.         protected $ArticleIndexPrefix = 'Article';
  9.         protected $IndexFile = '<?php $Article = Array; ?>';
  10.  
  11.         function __construct($Article,$ArticleIndexFile,$ArticleIndexPrefix){
  12.                 $this->Article = $Article ;
  13.                 $this->ArticleIndexFile = $ArticleIndexFile ;
  14.                 $this->ArticleIndexPrefix = $ArticleIndexPrefix ;
  15.                 $this->IndexFile = '<?php
  16.                 $'.$this->ArticleIndexPrefix.'[] =  "'.$this->Article.'";
  17.                 ?>';
  18.                 }
  19.                
  20. //класс просто записывает в файл
  21.         function WriteArticle(){
  22.                 $Write = new FileCreate($this->ArticleIndexFile,$this->IndexFile,'a');
  23.                 $Write -> Create();
  24.                 }
  25.         }
  26.  
  27.  
  28. echo '<form method="POST" action="section.php">';
  29. echo 'Статья:<textarea name="Article" cols="15" rows="5" value=""></textarea></br>';
  30. echo '<input type="submit" name="submit" value="добавить"></form>';
  31.                
  32. If(isset($_POST['submit'])){
  33.         $Create = new WriteIndexArticle($_POST['Article']);
  34.         $Create -> WriteArticle();
  35. }
  36. ?>
  37.  


FileCreateClass.php (Отобразить)



Ошибки (Отобразить)


В общем,я то ли принцип конструкторов неправильно понимаю, то ли просто синтаксис неправильный. Помогите пожалуйста разобраться.
 
 Top
caballero
Отправлено: 09 Октября, 2012 - 13:11:39
Post Id


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


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


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




при чем там конструктор
возьми гугл переводчик и прочитай что пишет в ошибках


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Мелкий Супермодератор
Отправлено: 09 Октября, 2012 - 13:12:12
Post Id



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


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


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




Вы неправильно поняли функции.
Если функция (равно как и методы классов) объявлена function foo($param1, $param2) - она должна вызываться как минимум с двумя параметрами.
Чтобы сделать параметры справа необязательными - им надо указывать значения по-умолчанию: function foo($param1, $param2='default') - в этом случае второй параметр можно не указывать.
Однако, значением по-умолчанию можно указать только постоянное значение, если это значение надо брать из атрибута класса - обычно делается так:
PHP:
скопировать код в буфер обмена
  1. function($param=null) {
  2. if (is_null($param)) $param = $this->someParam;
  3. //прочие действия
  4. }


-----
PostgreSQL DBA
 
 Top
fabervox
Отправлено: 09 Октября, 2012 - 14:05:33
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Июль 2012  


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




caballero пишет:
возьми гугл переводчик и прочитай что пишет в ошибках

fabervox пишет:
все равно не понял.


А вот совет,Мелкий, решил проблему. Я думал что в конструкторе так работает само по себе.

Спасибо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB