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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите с ООП, вопрос по __construct() __destruct() 
:(
    Опции темы
pitbuly
Дата 4.2.2006, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



прочитал мануал вроде проще пареной репы
__construct()
Классы, в которых объявлен метод-констуктор, будут вызывать этот метод при каждом создании нового объекта
__destruct()
когда освобождается последняя ссылка на объект, перед высвобождением памяти
мне кажется скуповато описано хотелось бы поподробней.
допустим
возвращают ли они return
можно ли в __destruct() инициализировать переменную
можно ли в __destruct() зделать конкатенацию строки , которая была обьявлена в конструкторе
пример:
Код

class MyClass
 {
  public $Form;
    __construct($script,$method,$name,$target='')
    {
       $this->Form = '<form action="'.$script.
    '" method="'.$method.
    '" name="'.$name.
    '" target="'.$target.'">';
    }
   __destruct()
  {
     $this->Form .= '<input name=send value=send type=submit></form>';
  }
 }

я хотел зделать класс для динамического создания форм вроде получилось но работает не коректно
то не работает конструктор то не работет деструктор. причем результат зависит от браузера. smile
сам файл прилагаю.

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  cretForm.txt 2,87 Kb
PM MAIL   Вверх
Mal Hack
Дата 4.2.2006, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Цитата(pitbuly @ 4.2.2006, 19:37 Найти цитируемый пост)

я хотел зделать класс для динамического создания форм вроде получилось но работает не коректно
то не работает конструктор то не работет деструктор. причем результат зависит от браузера. smile

Так не бывает.
В чем конкретно выражается не работа.
Цитата(pitbuly @ 4.2.2006, 19:37 Найти цитируемый пост)

возвращают ли они return

Нет.
Цитата(pitbuly @ 4.2.2006, 19:37 Найти цитируемый пост)

можно ли в __destruct() зделать конкатенацию строки , которая была обьявлена в конструкторе

Можно.

Только смысл? Ты же и так объект удаляешь.
PM ICQ   Вверх
pitbuly
Дата 5.2.2006, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я разобрался __destruct делает то же что и __construct только в самом конце.а не работа была связана
совсем с другим .ошибку я нашел.
PM MAIL   Вверх
Opik
Дата 25.5.2006, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

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



Цитата

Цитата

возвращают ли они return 

 Нет.

почему же, могут, но только ссылку на свой объект, т.е new Class, или $this 
PM MAIL Skype   Вверх
<Spawn>
Дата 5.6.2006, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

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



Opik, имеется ввиду, что они ссылку эту возвращаю по умолчанию и явного вызова оператора return не требуется. 


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
tolik777
Дата 25.9.2006, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



У меня похожий вопрос.
Мой код:
Код

class Class1
{
    function __construct()
    {    
        if(function_exists('curl_init')){            //Если модуль cURL установлен
            return true;
        }
        else return false;
    }

Мне надо сделать так, чтобы при вызове $per = new Class1(); если модуль cURL не установлен, то высвечивается ошибка.
Как такое сделать? Дело в том, что $per возвращает ссылку на обьект, а не значение. Или тут одной функцией не обойтись, и надо делать вторую функцию для проверки установлен ли модуль cURL?

Это сообщение отредактировал(а) tolik777 - 25.9.2006, 13:02
PM MAIL WWW ICQ   Вверх
Garret
Дата 25.9.2006, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А просто die сделать нельзя?
PM MAIL WWW ICQ   Вверх
tolik777
Дата 25.9.2006, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Если die/exit сделать, тогда скрипт прервется, а мне надо чтобы скрипт продолжил работу.
PM MAIL WWW ICQ   Вверх
Garret
Дата 25.9.2006, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Тогда тебе нужно сделать отдельную функцию проверки и вызывать ее.
PM MAIL WWW ICQ   Вверх
Vaulter
Дата 25.9.2006, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



function __construct()
{
if(!function_exists('curl_init'))
trigger_error('cUrl не установлен! нах такого хостера и саппортов! be root smile', E_WARNING);



ляляляля..
}




--------------------
PM MAIL WWW ICQ   Вверх
Drache
Дата 11.10.2006, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



можешь еще посмотреть в сторону try ... catch ...
PM MAIL   Вверх
<Spawn>
Дата 12.10.2006, 06:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

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



Цитата(Drache @ 11.10.2006,  16:32)
можешь еще посмотреть в сторону try ... catch ...

try...catch в данном случае не поможет, т.к. ошибка генерируется PHP. Завернуть же ее в свой обработчик можно лишь попрыгав вокруг set_error_handler


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Extensions | Следующая тема »


 




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


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

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