За последние 24 часа нас посетили 64035 программистов и 1741 робот. Сейчас ищут 857 программистов ...

Ссылки в PHP5

Тема в разделе "Прочие вопросы по PHP", создана пользователем A, 29 ноя 2006.

  1. A

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

    С нами с:
    29 ноя 2006
    Сообщения:
    8
    Симпатии:
    0
    версия: php5
    Ссылки при вызове функций вида:
    func(&$var); устарели
    и предлагают использовать ссылки в описании функции, типа:
    function foo(&$v) {}
    foo($var);
    такой стиль похож на С++
    ноне позволяет никак передавать нативные константы:
    foo(10); - тут мы лови фатал еррор
    собственно хочется увидеть как делает широкоуважаемый Олл как выйти из такой ситуации:
    нужно иметь возможность передавать нативные константы (как показано выше) и в тоже время это должны быть ссылки (чтобы при передаче обьекта он не пересоздавался).
    в старом стиле это можно было обойти так:
    function foo($var) {}
    foo(10); -все ок тут у нас переменная
    foo(&$obj); - все ок тут у нас ссылка.

    если никак низзя, то второй вопрос:
    Не собираются ли создатели отключить данную функциональность (передача по ссылке при вызове функции), а то возможно весь проект разломается если перейдем в будущем на PHP6 =))
     
  2. Anonymous

    Anonymous Guest

    Потому что это противоречит логике. Подумайте сами, как можно передавать константы по ссылке? =)
     
  3. vasa_c

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

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    А он и не пересоздается. Почитайте об отличиях php5 и php4 чуть более внимательно.
     
  4. A

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

    С нами с:
    29 ноя 2006
    Сообщения:
    8
    Симпатии:
    0
    дайте-ка кое что поясню:
    в С++ можно зделать так - псевдо код на PHP:
    function foo(&$v) {}
    foo(int(10)); - вот такой вызов в C++ есть
    а в php такого нету
    причем тут используются ссылки
    и константа передается
    просто я не хочу делать такое:
    $v=1;
    foo($v);
    или даже так:
    foo($v=1)
    чтобы передать константу. както лажово. вот выясняю может проще можно.
    как насчет вопроса №2 - исчезнет ли старый тип передачи по ссылкам в будущем?
     
  5. avm

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

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    мне кажется вам мешает C'шная привычка к указателям... В php ссылки означают лишь то что к одному содержимому можно обращаться разными именами переменных.

    http://ru.php.net/manual/ru/language.references.php
     
  6. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    чего?
     
  7. avm

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

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    несколько раз переписывал предложение, и так и не удалось написать ЭТО нормально... :lol:
     
  8. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    откуда цитата?
     
  9. A

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

    С нами с:
    29 ноя 2006
    Сообщения:
    8
    Симпатии:
    0
    мне не мешает это =). просто у меня много раз вызывается функция с разными параметрами (один из которых бооольшой обьект/массив, один и тотже вызывается несколько раз). если пользовать без ссылок то тормозит, а с ссылками - устаревшая концепция.
    получается разработчики PHP убрали старую функциональность а новую фишку на замену старой недобавили.
    ЗЗЫ не убрали а тока сказали устарело. Вопрос чем заменить?
     
  10. A

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

    С нами с:
    29 ноя 2006
    Сообщения:
    8
    Симпатии:
    0
    ЗЗЫ я знаю что такое ссылки в PHP: слава богу не новичек. Я просто хочу узнать как Олл решает схожие проблемы? когда копирование МЕГА обьекта неприемлемо, ссылки нового вида не доступны (уродский вид).
    ЗЗЗЫ так кто нить ответит уберут старую семантику или нет в будущем?
     
  11. avm

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

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    из мануала. ссылку на страницу я привел выше.
    об этом не было упоминания, но изменения относительно ссылок в php6 таки будут: http://www.php.net/~derick/meeting-notes.html
     
  12. A

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

    С нами с:
    29 ноя 2006
    Сообщения:
    8
    Симпатии:
    0
    это позволяет также не копировать обьекты. точный линк не дам, но об этом говорится в мануале по PHP5. Вот цитата из мануала по PHP5 на русском:

    вот у меня производительность и падает без ссылок :-((
     
  13. avm

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

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    http://www.php.net/~derick/meeting-notes.html
     
  14. A

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

    С нами с:
    29 ноя 2006
    Сообщения:
    8
    Симпатии:
    0
    все разобрался =) это мои баги кода