За последние 24 часа нас посетили 47787 программистов и 1729 роботов. Сейчас ищут 698 программистов ...

Ссылки на элементы массива (советую всем прочитать)

Тема в разделе "Прочие вопросы по PHP", создана пользователем karlozzz, 6 дек 2010.

  1. karlozzz

    karlozzz Активный пользователь

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    MiksIr
    Причем тут домыслы, опытный водитель не должен знать, что в мозгах у машины, а должен в совершенстве пользоваться интерфейсом управления (да, на следующий Ваш ответ, опытный водитель должен ездить на ВСЕХ машинах стандартного интерфейса, вне зависимости от начинки, которую у всех запомнить нереально)
    Чем опасны, ссылки на документацию. Сообщество признало данное за баг и задокументировало, о чем информация приводится выше, об опасностях речи не шло))
    Да, я знаю как и для чего работают ссылки, я натолкнулся на такой нюанс, о котором во всех прочитанных мной материалах упоминаний не встречал (поверьте на слово, их было не мало), я нашел информацию, продемонстрировал примерами, чтобы не только я, но и ВЫ в своей работе не напоролись на подобный нюанс, что плохого вы видите в данной теме?
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    это баг, как ни назови
     
  3. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Опытный водитель как раз отличается от неопытного, что знает ньюансы поведения машны на разных поверхностях, в зависимости от резины, типа привода и наличия опциональных систем помощи. А не опытный уверен, что если он повернул руль - то машина всегда повернет, а если нажал на тормоз - всегда затормозит.

    Ссылки не есть тривиальное средство языка и не есть любимый вами "высокий уровень". Ссылки изначально сложнее к пониманию ибо оперируют с принципом хранения данных интерпретатором. В описании "что есть ссылка" именно это и написано - это алиас в таблице символов.

    http://www.php.net/manual/en/language.r ... whatdo.php
    Тут про подводные камни массива, в частности про копирование массива со ссылками внутри.

    О том, что при ссылке на элемент массива он копируется я в документации не нашел, но вполне можно догадаться зная как работают ссылки. Например, по такому логичному примеру
    Код (Text):
    1. $a = array(1,2); $b = &$a[1]; unset($a); echo $b;
    Ожидаем, что $b живо - и оно живо.

    В общем суть то в чем. Сначала нужно понять, как работает тот или иной механизм в языке, и потом его использовать исходя из знаний, а не ограниченной логики без знаний. Вроде как тебя на машине несет в отбойник, а тебе нужно газа поддать больше... звучит нелогично же, если нет знаний, да? ;)
     
  4. karlozzz

    karlozzz Активный пользователь

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    MiksIr
    Золотые слова, тонко сказано)))
    Но вот поменяется интерпретатор, от другой фирмы например, а там все работает по другому, это же не нормально, как представляешь работу, так и должно работать
    Ну я именно так и догадался, только когда ошибка уже вкралась и минут 10 не мог понять в чем дело, примеры же из неоткуда не берутся, вот скажи, написал бы ты
    Код (Text):
    1. $a = array(1,2); $b = &$a[1]; unset($a); echo $b;
    просто так? Да конечно же нет, только в комплексе с другой разработкой, ВОТ ИМЕННО ДЛЯ ЭТОГО, Я И СОЗДАЛ тему, чтобы у вас, товарищи, проблем в разработке не возникло в дальнейшем. Да, теперь принцип понимаем и учимся на чужих ошибках, но не дай бог этот баг устранят... Что тогда? Может многое полететь, отсутствие совместимости по лестнице версий... Как решение, сериалайз ансериалайз, я лично так и сделал и уверен, что даже после устранения бага проблема не всплывет
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    MiksIr
    хорош филосовстовать. =)
     
  6. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Это не баг, это фича. Смиритесь с этим. Документированная фича основанная на принципах работы. И если кто-то напишет другой интернретатор, а там это будет работать по-другому - вот это уже будет баг.
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    MiksIr
    У российских машин выходит тоже есть фича? С такой логикой можно далеко зайти.
     
  8. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Лучше далеко зайти, чем сидеть на жопе и свистеть. Так что давай по делу.
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    по делу от тебя пока ничего не было слышно, так зачем я буду тебе по делу отвечать, если по делу-то не шаришь нишиша? =)