Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2016, 11:13   #1
Bilargo
Форумчанин
 
Аватар для Bilargo
 
Регистрация: 17.09.2009
Сообщений: 231
По умолчанию Цикл foreach

Добрый день!
Помогите разобраться, имеется следующая конструкция:
PHP код:
foreach($this->leading as $key=>$item):
$this->item=$item
Что означает строка $this->item=$item в частности оператор -> ?
Спасибо!
Цитата:
Относись к людям так, как хочешь, чтоб относились к тебе!
Bilargo вне форума Ответить с цитированием
Старый 06.05.2016, 11:23   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

обращение к свойству класса с именем item

читайте про ООП в PHP (например, Доступ к классам и объектам в PHP тут)

главное, что такое $this->leading у Вас вопросов не вызвало!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.05.2016, 11:29   #3
Bilargo
Форумчанин
 
Аватар для Bilargo
 
Регистрация: 17.09.2009
Сообщений: 231
По умолчанию

Цитата:
обращение к свойству класса с именем item

читайте про ООП в PHP (например, Доступ к классам и объектам в PHP тут)
Ок, спасибо за оперативность

Цитата:
главное, что такое $this->leading у Вас вопросов не вызвало!
У меня очень узкая задача стоит, но если просвятите буду благодарен
Цитата:
Относись к людям так, как хочешь, чтоб относились к тебе!
Bilargo вне форума Ответить с цитированием
Старый 06.05.2016, 12:22   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Bilargo Посмотреть сообщение
У меня очень узкая задача стоит, но если просвятите буду благодарен
да я сам не очень "свят"

к тому же, я не вижу, какая именно у Вас задача стоит и чем я могу Вам помочь...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.05.2016, 15:04   #5
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Цитата:
Сообщение от Bilargo Посмотреть сообщение
У меня очень узкая задача стоит, но если просвятите буду благодарен
Судя по всему, с ООП совсем туго, поэтому скажем так:
есть элементарные типы данных, числа там, символы, которые хранятся в переменных, так сказать, как есть т. е. только само значение

есть более сложные типы (строки и массивы, в общем случае), которые уже устроены сложнее.. внутри них скрыто уже не просто число/символ, а, например, длина массива, его расположение в памяти и т.д., а в коде это отражается в поддержке доступа по индексу, например, что не применимо к символам и числам (если не опускаться до уровня байт, чего не должно быть в РНР, не для таких задач этот язык)

есть структуры, которых в РНР нету, но они являются промежуточным звеном... если два предыдущих типа были более-менее монолитными и программист мог выбрать только один тип хранимых в них данных, то тут программист уже может сказать "я хочу чтоб структура Х хранила в себе число А и массив В" т. е. любые переменные/значения типа Х будут, будто ящик, хранить в себе А и В (это члены записи или поля), которые можно получить дописав "->A" или, соответственно, "->В"
РНР является весьма динамичным языком, поэтому нельзя на 100% ни типы, ни наличие тех или иных полей, но это уже некоторый договор о формате данных, об их структуре, что позволяет писать более качественный код (отдельная тема для парочки книг)
структуры постепенно усложнялись и следующим важным этапом стало появление у них своих функций (они называются методами).. крайне важно тут слово "свои" т. к. до этого уже были функции работающие с записями, но теперь они стали тесно связанными с записями...... тут уже появилась необходимость во всяких this/self, которые, с одной стороны, делают код короче и читаемей, а ещё, с другой стороны, позволяет сказать "этот код тесно связан с данными записи, которая им владеет, и без неё он не может работать" и определить некий договор о структуре записи, указать какие поля и методы она должна иметь, чтоб код работал корректно
все эти сложности, как ни странно, существенно упрощают код и снижают вероятность ошибок (опять же, в РНР с этим чуть хуже, а в С++, например, позволяет напрочь исключить элементарные ошибки ещё до запуска кода), НО эта польза заметна лишь на сложных задачах, где рабочего кода больше чем само описание всех структур и методов
(я вырос на Паскале, поэтому пишу "записи", хотя "структуры" более правильное название, но менее удобное ("структура структуры" - звучит глупо))

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

опять же, вся эта эволюция позволяет легко решать сложные задачи, но простые задачи, увы, оно лишь усложняет, поэтому не стоит, решая простые задачи, думать "да ну, ООП и классы - это фигня, оно только усложняет код"... увы, но на начальном этапе обучения приходится именно так и поступать, чтоб получить хоть некоторые базовые навыки работы с классами.

P. s. я опустил очень многие нюансы, местами пришлось вовсе использовать весьма спорные утверждения, но полноценный материал по этим темам займёт не один десяток книг, поэтому не обессудь
P. p. s. увы, но пока классы не эволюционировали во что-то действительно новое... мир ООП уже переполнен всякими там паттернами, функторами, различными классными вещами, которые сильно отличаются от классов, НО это пока всё те же классы, пусть и сильно развитые

Последний раз редактировалось GreenWizard; 06.05.2016 в 15:08.
GreenWizard вне форума Ответить с цитированием
Старый 06.05.2016, 17:29   #6
Bilargo
Форумчанин
 
Аватар для Bilargo
 
Регистрация: 17.09.2009
Сообщений: 231
По умолчанию

Цитата:
Сообщение от GreenWizard Посмотреть сообщение
Судя по всему, с ООП совсем туго, поэтому скажем так:
есть элементарные типы данных, числа там, символы, которые хранятся в переменных, так сказать, как есть т. е. только само значение

есть более сложные типы (строки и массивы, в общем случае), которые уже устроены сложнее.. внутри них скрыто уже не просто число/символ, а, например, длина массива, его расположение в памяти и т.д., а в коде это отражается в поддержке доступа по индексу, например, что не применимо к символам и числам (если не опускаться до уровня байт, чего не должно быть в РНР, не для таких задач этот язык)

есть структуры, которых в РНР нету, но они являются промежуточным звеном... если два предыдущих типа были более-менее монолитными и программист мог выбрать только один тип хранимых в них данных, то тут программист уже может сказать "я хочу чтоб структура Х хранила в себе число А и массив В" т. е. любые переменные/значения типа Х будут, будто ящик, хранить в себе А и В (это члены записи или поля), которые можно получить дописав "->A" или, соответственно, "->В"
РНР является весьма динамичным языком, поэтому нельзя на 100% ни типы, ни наличие тех или иных полей, но это уже некоторый договор о формате данных, об их структуре, что позволяет писать более качественный код (отдельная тема для парочки книг)
структуры постепенно усложнялись и следующим важным этапом стало появление у них своих функций (они называются методами).. крайне важно тут слово "свои" т. к. до этого уже были функции работающие с записями, но теперь они стали тесно связанными с записями...... тут уже появилась необходимость во всяких this/self, которые, с одной стороны, делают код короче и читаемей, а ещё, с другой стороны, позволяет сказать "этот код тесно связан с данными записи, которая им владеет, и без неё он не может работать" и определить некий договор о структуре записи, указать какие поля и методы она должна иметь, чтоб код работал корректно
все эти сложности, как ни странно, существенно упрощают код и снижают вероятность ошибок (опять же, в РНР с этим чуть хуже, а в С++, например, позволяет напрочь исключить элементарные ошибки ещё до запуска кода), НО эта польза заметна лишь на сложных задачах, где рабочего кода больше чем само описание всех структур и методов
(я вырос на Паскале, поэтому пишу "записи", хотя "структуры" более правильное название, но менее удобное ("структура структуры" - звучит глупо))

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

опять же, вся эта эволюция позволяет легко решать сложные задачи, но простые задачи, увы, оно лишь усложняет, поэтому не стоит, решая простые задачи, думать "да ну, ООП и классы - это фигня, оно только усложняет код"... увы, но на начальном этапе обучения приходится именно так и поступать, чтоб получить хоть некоторые базовые навыки работы с классами.

P. s. я опустил очень многие нюансы, местами пришлось вовсе использовать весьма спорные утверждения, но полноценный материал по этим темам займёт не один десяток книг, поэтому не обессудь
P. p. s. увы, но пока классы не эволюционировали во что-то действительно новое... мир ООП уже переполнен всякими там паттернами, функторами, различными классными вещами, которые сильно отличаются от классов, НО это пока всё те же классы, пусть и сильно развитые
Спасибо за Ликбез Было интересно прочитать!
Задачу я свою решил, поэтому спасибо всем за помощь))
Цитата:
Относись к людям так, как хочешь, чтоб относились к тебе!
Bilargo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Foreach в SQL Ivan_32 SQL, базы данных 1 03.04.2011 20:28
php: for из foreach avast2011 PHP 4 13.02.2011 22:03
Классы в C# и цикл foreach densx Помощь студентам 2 30.11.2010 03:33
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34