Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Использование объектов в PHP
|
|||
|---|---|---|---|
|
#18+
r uПрограмёр, в твоем коде, все происходит иначе - чем ты думаешь. конструктор ничего не возвращает. а причина ругани в другом Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. а так? ) можешь объяснить? если нет, читай доки. ну этоже основы Конструктор прям таки ничего не возвращает? )) И даже указатель на объект? Разумеется, что скорее всего это придирка к словам :) перефразирую так - конструкция new class() всегда возвращает указатель на объект независимо от результата выполнения конструктора (тут только сомневаюсь по поводу исключений, но хотя если я из конструктора бросил исключение, то в любом случае в нормальном коде объект требуется или не использовать или пересоздать и просто словить исключение и не выполнить действий над объектом - это бред). Однако снова же, как меняется от этого смысл сказанного? Получит ли автор в итоге от строки new class() вместо объекта class строку или fasle? Вот об этом я и говорил. P.S. что-то последнее время перестаёт мне нравится этот форум... Участники всё чаще и чаще начинают придираться к мелочам, которые не имеют смысла и часто произносятся мной для упрощения всей модели понимания. Или мне надо было разводить весь этот трёп для автора, что бы пояснить ему, почему return в конструкторе не имеет смысла? или же просто как я сказал "конструктор объекта может вернуть только соответствующий объект", что автор сразу понял и прокомментировал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:41 |
|
||
|
Использование объектов в PHP
|
|||
|---|---|---|---|
|
#18+
ПрограмёрКонструктор прям таки ничего не возвращает? )) И даже указатель на объект? блин. ну глянь доку. уже даже ктото тебе приводил. повторюсь php.netvoid __construct ([ mixed $args [, $... ]] ) видишь VOID. знаешь что это значит? конструктор НЕ ВОЗВРАЩАЕТ указатель. ни больше не меньше. указатель на объект ты получаешь с помощью new ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 11:46 |
|
||
|
Использование объектов в PHP
|
|||
|---|---|---|---|
|
#18+
ПрограмёрКонструктор прям таки ничего не возвращает? )) И даже указатель на объект? в PHP/JAVA/CPP и т д - не возвращает. new выделяет память, конструктор ее инизиализирует (очень грубо) в Javascript - действительно возвращает объект (если ничего в коде конструктора не возвращать - неявно возвращается this) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 12:02 |
|
||
|
Использование объектов в PHP
|
|||
|---|---|---|---|
|
#18+
HettAlibek B., Не к вашему, там кто то про $this спросил, из чего следует пологать о доступе изнутри. Программе, где ты там статический метод увидел в моём примере? Это вообще азы пхп, а ты даже тут опростофилился блин... да обратись ты через self не к методам, а к переменной и почувствуй разницу. А то спорим ни о чём. Статический - не изменяемый от объекта к объекту. То есть сколько бы объектов класса "A" создано не было, метод m1 в памяти будет храниться в единственном числе (не напоминает ничем static переменную?). А потому обращение self::m1() прокатывает... только из-за того, что метод ОДИН, а не по одному на объект... Попробуй прокрутить то же с атрибутом (переменной) объекта и зацени ругань интерпретатора. для методов было введено слово static не для того, что бы уточнить у программиста "а надо ли дублировать код метода для каждого объекта", а для того, что бы уточнить "а надо ли передавать первым аргументом ссылку на объект". Вот и всё!!! С переменными класса всё совсем иначе. А вообще пока... до нескорых встреч... надоели мне эти все "опростофилился" и "ошибаешься чуть бы не в каждом суждении". P.S. К сожалению модераторы уже не те... если при регистрации на этом форуме я видел как все сообщения строго фильтруются, из них вырезаются оскорбления, пустая болтовня (оффтоп) и тому подобный бред, то сейчас всё совсем иначе. Сейчас даже при отправке сообщения модераторам о явном нарушении правил, троллинге и подобных моментах, модераторы не реагируют никак. Не дают никаких пояснений, что для них это в пределах нормы общения или что-то подобное, а просто игнорируют запросы, хотя они явно указывают на развитие нездравой беседы (то есть когда нормальное здравое обсуждение темы прерывается чьей-то тупой фразкой или сообщение аля "ну вы и дебилы все! Так нельзя делать, так только последние уроды пишут. Иди газоны подстригать с такими руками, а не программировать" (совпадения с реальными фразами или людьми является случайностью)). Разуверился я в данном форуме... Раньше модераторы следили за своими ветками явно более тщательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 12:04 |
|
||
|
Использование объектов в PHP
|
|||
|---|---|---|---|
|
#18+
r uПрограмёрКонструктор прям таки ничего не возвращает? )) И даже указатель на объект? блин. ну глянь доку. уже даже ктото тебе приводил. повторюсь php.netvoid __construct ([ mixed $args [, $... ]] ) видишь VOID. знаешь что это значит? конструктор НЕ ВОЗВРАЩАЕТ указатель. ни больше не меньше. указатель на объект ты получаешь с помощью new Начиная со второго предложения я пояснил свои слова, и описал почему написал именно так. Для ответа на вопрос не разумно объяснять устройство выделения памяти. Или мне заглянуть ещё в низкоуровневые функции выделения памяти? А может ещё упомянуть при описании метода foreach что элементы массива вроде как иду последовательно, но реально они совсем не последовательны, а разбросаны в памяти исходя из результатов вычисления хэш-функции? Ведь иначе скажи я "foreach перебирает последовательно все элементы массива", меня точно также могут прижать, что я не прав!!! Так всё же, почему, когда я с кем-то согласен, все упускают мелкие ошибки в моих высказываниях (а иногда и некоторые аспекты неправильного понимания), а когда доходит до спора, то придираются к каждой буковке? Может это от недостатка аргументов? (хотя по отношению к `r u` сомневаюсь, так как редко замечал от него тыканье носом в асфальт кого либо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 12:16 |
|
||
|
Использование объектов в PHP
|
|||
|---|---|---|---|
|
#18+
авторперефразирую так - конструкция new class() всегда возвращает указатель на объект независимо от результата выполнения конструктора есть еще два варианта, когда таки возвращает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 12:21 |
|
||
|
Использование объектов в PHP
|
|||
|---|---|---|---|
|
#18+
ПрограмёрПолучит ли автор в итоге от строки new class() вместо объекта class строку или fasle? echo ждет на входе строку, чтобы вывести её. ты ей даешь объект. никто незнает КАК ОДНОЗНАЧНО ОТОБРАЗИТЬ этот объект в строку, чтобы вывести. от этого и ошибка выполнения. но стоит добавить магию в виде __toString() как ошибка исчезает. так как теперь есть четкое приведение объекта в строку. что ты хочешь доказать этим кодом, мне лично непонятно? както подругому должно было это сработать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 12:26 |
|
||
|
Использование объектов в PHP
|
|||
|---|---|---|---|
|
#18+
авторМожет это от недостатка аргументов? (хотя по отношению к `r u` сомневаюсь, так как редко замечал от него тыканье носом в асфальт кого либо) ты начинаешь делать мой день. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 12:26 |
|
||
|
Использование объектов в PHP
|
|||
|---|---|---|---|
|
#18+
щас мы еще вспомним что конструкторов на самом деле два и будет совсем весело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 12:28 |
|
||
|
Использование объектов в PHP
|
|||
|---|---|---|---|
|
#18+
r uПрограмёрПолучит ли автор в итоге от строки new class() вместо объекта class строку или fasle? echo ждет на входе строку, чтобы вывести её. ты ей даешь объект. никто незнает КАК ОДНОЗНАЧНО ОТОБРАЗИТЬ этот объект в строку, чтобы вывести. от этого и ошибка выполнения. но стоит добавить магию в виде __toString() как ошибка исчезает. так как теперь есть четкое приведение объекта в строку. что ты хочешь доказать этим кодом, мне лично непонятно? както подругому должно было это сработать? Это можно упустить в принципе )) Спор насчёт конструктора возник после 16150171 . Из-за чего меня "раздражают" эти недофразы ScareCrow. То есть было выражено несогласие с моим суждением, которое я расценил неверно... как уже выяснилось позже, суть была в том, что указатель на объект (выделенную для него память) возвращается не конструктором. Но учитывая что я то ставил ударение на "только", а не на возвращения указателя именно конструктором, подумал что спор идёт насчёт "не только". (и потому я склоняюсь, что впредь реагировать на её такого рода бессмысленные высказывания несогласия не подкреплённые даже описанием несогласия я не буду). А сработать этот код не должен вообще, Он показывает, что возвращая строку в конструкторе, мы не получим эту строку на выходе из конструкции new Class() (говорил я это именно автору, так как он возвращал строку и ждал её на выходе) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 13:15 |
|
||
|
Использование объектов в PHP
|
|||
|---|---|---|---|
|
#18+
Програмёрговорил я это именно автору, так как он возвращал строку и ждал её на выходе ок. а то спор идет. а кто, что доказать хочет - уже совсем непонятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 13:18 |
|
||
|
Использование объектов в PHP
|
|||
|---|---|---|---|
|
#18+
авторОн показывает, что возвращая строку в конструкторе, мы не получим эту строку на выходе из конструкции new Class() как всегда всё совсем не так. Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 13:23 |
|
||
|
Использование объектов в PHP
|
|||
|---|---|---|---|
|
#18+
ScareCrow Код: php 1. автормы не получим эту строку на выходе из конструкции new Class() ну если печатать и получить из new - одно и то же - разговаривать не о чем летели два крокодила, один зелёный, другой на север... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 13:31 |
|
||
|
|

start [/forum/topic.php?fid=23&gotonew=1&tid=1462707]: |
0ms |
get settings: |
6ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
7ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 338ms |

| 0 / 0 |
