Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Не понимаю: структура и тип класса
vladimirsh_php  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 3
Пользователь №: 43478
На форуме: 1 месяц, 22 дня
Карма:




Здравствуйте.
Начал читать и вникать в книгу:
"PHP Объекты, шаблоны и методики программирования" Мэтт Зандстра" - 4 издание.

Встретил там такое предложение, котоое не лезет в моё понимание:
"При этом трейт изменяет структуру этого класса, но не меняет его тип." на странице 76.

Мне не понятно: что такое структура и тип класса?
Чем они отличаются?

Спасибо.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
jetistyum  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 2605
Пользователь №: 5568
На форуме: 8 лет, 4 месяца, 24 дня
Карма: 30




Это же не книжный клуб, вы бы скрин страницы скинули, чтобы понятен был контекст фразы.
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
jetistyum  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 2605
Пользователь №: 5568
На форуме: 8 лет, 4 месяца, 24 дня
Карма: 30




хотя, скорее всего имеется в виду что с помощью трейта добавляются новые методы, свойства класса, при этом сам объекты остаются все того же типа.
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25980
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 18 дней
Карма: 725

Не курю:
1 год, 2 месяца, 5 дней


трейт это родитель. с помощью трейтов в php наконец-то организовали множественное наследование.

каждый наследник получает доступ к методам родителя и это никак не влияет на сам объект исходного класса.

структура - это и есть набор методов и свойств класса.


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









А что такое тип класса?
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25980
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 18 дней
Карма: 725

Не курю:
1 год, 2 месяца, 5 дней


Цитата
А что такое тип класса?

абстрактные, статические, интерфейсы


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Oyeme  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Reality is wrong. Dreams are for real
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1672
Пользователь №: 16955
На форуме: 7 лет, 9 месяцев, 6 дней
Карма: 94




Цитата
трейт это родитель. с помощью трейтов в php наконец-то организовали множественное наследование.


Почитай еще раз что это такое и для чего это назвали "Примесями".
Хотели бы сделать множественное наследование сделали бы как в питоне.


--------------------
Programming: Private lessons via skype £45/h

Частные уроки в Лондоне / удаленно по skype.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25980
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 18 дней
Карма: 725

Не курю:
1 год, 2 месяца, 5 дней


Цитата
трейт это родитель. с помощью трейтов в php наконец-то организовали множественное наследование.

в этом предложении я бы мог перед каждым словом поставить "псевдо", но делать этого не стал.


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
SlavaFr  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Журнал
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1535
Пользователь №: 22453
На форуме: 6 лет, 6 месяцев, 1 день
Карма: 104




Цитата (Guest @ 11.10.2016 - 05:37)
А что такое тип класса?

biggrin.gif
Цитата (Игорь_Vasinsky @ 11.10.2016 - 03:34)
трейт это родитель. с помощью трейтов в php наконец-то организовали множественное наследование.

Треийт это не родитель, а отдельно существующий функционал, который с наследованием и типизированием не чего общего не имеет. По сути любые функции, которы могли бы использоваться в различных классах, лучше иметь в тейтах.
Как правило методы трейтов обявляют протектед для того, что бы ими ПОЛьЗОВАЛИСь в различных классах, но не выставляли эти методы как типы на показ.
Трейты невозможно сравнить с множественным наследованием, так как класс пользующийся третом не может иметь больше типов, чем при одиночном наследование.


--------------------
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
vladimirsh_php  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 3
Пользователь №: 43478
На форуме: 1 месяц, 22 дня
Карма:




Теперь вроде стало понятно:
"При этом трейт изменяет структуру этого класса, но не меняет его тип"

Структура - это т.е. методы или свойства этого класса.
Тип - public, private, или protected
Верно?

Трейты - это как выведенный за классы функционал, который при необходимости может использоваться/подключаться широким спектром классов и объектов.


з.ы.
Склоняюсь, что Мэтта Зандстру мне ещё рано или сложно читать.
Надо начать с чуть лёгкого и понятного.

Это сообщение отредактировал vladimirsh_php - 11.10.2016 - 15:45
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Аццкая хрень
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5475
Пользователь №: 32538
На форуме: 4 года, 6 месяцев, 6 дней
Карма: 49




vladimirsh_php
Цитата
Трейты - это как выведенный за классы функционал, который при необходимости может использоваться/подключаться широким спектром классов и объектов.

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


--------------------
Правда тоже ложь, но с иным углом.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
SlavaFr  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Журнал
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1535
Пользователь №: 22453
На форуме: 6 лет, 6 месяцев, 1 день
Карма: 104




@vladimirsh_php
public, private или protected, это как бы не "тип", а "видимость".
В принципе "типом", является само название класса, интерфейса или примитивного типа.
К примеру int, double, float, string, DateTime, stdClass и любой другой интерфейс или класс это и есть "типы".
Исходя из контекста->"При этом трейт изменяет структуру этого класса, но не меняет его тип" то наверное имеется в виду "Структура", как внутенняя имплементация типа.
Мне кажется простоизошло неоднозначное описание "Структуры", так как публичные методы интерфейса тоже как бы можно назвать его структурой, хотя эта структура описывает "тип".
Когда ты начнёшь разбираться с интерфейсами и наследованием, то тебе станет всё более понятным...


--------------------
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
chee  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Сын полка
Сообщений: 1780
Пользователь №: 38654
На форуме: 2 года, 10 месяцев, 29 дней
Карма: 40




Цитата (vladimirsh_php @ 10.10.2016 - 23:29)
структуру этого класса

под структурой он понимал методы и свойства класса
Цитата (vladimirsh_php @ 10.10.2016 - 23:29)
его тип

под типом понимается сам класс, классы это по сути сложные типы данных. Когда мы определили класс, мы задали новый тип данных, подключая трейт мы не меняем заданный нами тип данных как в случае бы наследования, а просто добавляем к нему методов и свойств.


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

Мой блог
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
vladimirsh_php  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 3
Пользователь №: 43478
На форуме: 1 месяц, 22 дня
Карма:




Цитата (chee @ 12.10.2016 - 09:49)
Цитата (vladimirsh_php @ 10.10.2016 - 23:29)
структуру этого класса

под структурой он понимал методы и свойства класса
Цитата (vladimirsh_php @ 10.10.2016 - 23:29)
его тип

под типом понимается сам класс, классы это по сути сложные типы данных. Когда мы определили класс, мы задали новый тип данных, подключая трейт мы не меняем заданный нами тип данных как в случае бы наследования, а просто добавляем к нему методов и свойств.

Спасибо, понял.
Я знал, что класс - это сложный тип данных, как int, string, array итд..
Сейчас сменил книгу на другую.

Это сообщение отредактировал vladimirsh_php - 12.10.2016 - 09:55
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
chee  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Сын полка
Сообщений: 1780
Пользователь №: 38654
На форуме: 2 года, 10 месяцев, 29 дней
Карма: 40




Цитата (vladimirsh_php @ 12.10.2016 - 09:52)
Сейчас сменил книгу на другую.

правильное решение, сия книга зашквар полнейший.


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

Мой блог
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса