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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конструкторы в пхп4 и 5 
:(
    Опции темы
NewDima
Дата 24.2.2009, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

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



В четвертом пхп конструкторы в классах описываются просто функцией с одноименным названием. В пятом пхп используется метод с именем __constructor(). Так же, на сколько я знаю, пхп 5 поддерживает как совместимость то, что было в пхп 4. Относится ли это и к конструкторам? неужели будут описываться двумя способами? Как грамотнее описывать конструкторы в связи с постепенным переходом?
PM ICQ   Вверх
s0lman
Дата 24.2.2009, 17:04 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


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

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



Первый вариант устаревший. Используйте __construct


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
NewDima
Дата 24.2.2009, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

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



так вот в том и проблема, что в 4-ом он не вызывается (или я что не так делаю?) при использовании оператора new
PM ICQ   Вверх
pizzz
Дата 24.2.2009, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я не уверен, но что если сделать так:

Код

class some {
    function __construct () {
        // какой то код
   }

    function some () {
         $this->__construct ();
    }
}

--------------------
Спасибо много, жмем кнопку репутация.  Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады.     
PM MAIL ICQ   Вверх
skyboy
Дата 24.2.2009, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(NewDima @  24.2.2009,  15:58 Найти цитируемый пост)
Относится ли это и к конструкторам?

да.
но вариант pizzz мне нравится больше. правда, аргументов нету.
PM MAIL   Вверх
NewDima
Дата 24.2.2009, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

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



нравится то нравится, а какой конструктор будет вызван пхп 5? а вдруг два по очереди? =) не, это, конечно, глупое предположение.
Хотя я так уже и делаю, просто другого выхода не видел =) оказывается я не один такой
PM ICQ   Вверх
SneG0K
Дата 24.2.2009, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

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



Цитата(skyboy @  24.2.2009,  16:35 Найти цитируемый пост)
но вариант pizzz мне нравится больше. 

Это получается, что если класс называется some, то будет попытка вызвать конструктор по имени класса?
PM WWW Skype   Вверх
skyboy
Дата 24.2.2009, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(SneG0K @  24.2.2009,  16:49 Найти цитируемый пост)
то будет попытка вызвать конструктор по имени класса? 

в 4-м PHP - да.
в 5-м — только если отсутствует метод __construct
вообще, наверное, лучше уже писать чисто в стиле 5-й версии.
Если сильно надо будет и различие будет только в объявлениях методом и полей - переделать недолго. а если будут использоваться модули и конструкции, которые появились только в 5-й версии, то все равно обратной совместимости с 4-кой не будет.
PM MAIL   Вверх
NewDima
Дата 24.2.2009, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

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



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

Добавлено через 29 секунд
опоздал=) со своим мнением
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0479 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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