Что означает -> в php?

Тема в разделе "PHP", создана пользователем Bobrov, 20 мар 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Bobrov

    Bobrov Постоялец

    Регистр.:
    7 авг 2008
    Сообщения:
    145
    Симпатии:
    13
    Пример, я так понимаю речь про массивы, но вот в книгах таких обозначений я не встречал.

    $nau->pid = $andy->uid = $andy->units[$i];
     
  2. t0os

    t0os

    Регистр.:
    21 окт 2007
    Сообщения:
    284
    Симпатии:
    36
    http://www.intuit.ru/department/pl/plphp/6/2.html

     
    Bobrov нравится это.
  3. antiadmin

    antiadmin

    Регистр.:
    24 май 2008
    Сообщения:
    395
    Симпатии:
    23
  4. jID

    jID Постоялец

    Регистр.:
    12 фев 2008
    Сообщения:
    106
    Симпатии:
    31
    В объекте $nau есть свойство (судя по всему, публичная переменная) pid.

    Ещё в объекте $andy есть переменная uid и массив units.

    Приведённая строчка присваивает переменной pid в объекте $nau и переменной uid в объекте $andy значение из $i-той записи массива units объекта $andy.

    Т.е. -> обозначает обращение к свойству или методу объекта.
    А что такое объекты прекрасно рассказывается по вышеуказанным ссылкам, а также в куче книг про PHP.
     
  5. BDSG

    BDSG

    Регистр.:
    28 фев 2009
    Сообщения:
    203
    Симпатии:
    109
    так же добавлю, что если у данных объектов нет этих свойств, то они создаются..
     
  6. pslava

    pslava

    Регистр.:
    16 май 2007
    Сообщения:
    618
    Симпатии:
    122
    Это значит, что полям $nau->pid и $andy->uid присваивается значение $andy->units[$i];
     
  7. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    Бред.
    Они создадутся только если ты специально этим озадачишься (__set/__get)
     
  8. BDSG

    BDSG

    Регистр.:
    28 фев 2009
    Сообщения:
    203
    Симпатии:
    109
    PHP_Master
    внимательно читайте доки - эти методы (как и другие "магические") не явно присутствуют в любом! классе, и при объявлении не существующего свойства, не явно будет вызвам метод __set(), который и создаст св-во объекта.. интереса ради попробуйте:
    PHP:
    class test{}
    $foo = new test;
    $foo->bar 'some';
    echo 
    $foo->bar;
    в поток получите "some" и отсюда и далее свойство bar объекта $foo будет доступно..

    зы.. естественно никто не мешает мне переопределить __set()..
     
  9. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    Попробуй этот фокус на статических классах.
    Такой подход вообще порочен.
     
  10. BDSG

    BDSG

    Регистр.:
    28 фев 2009
    Сообщения:
    203
    Симпатии:
    109
    1. к статическим свойствам и методам и обращаются иначе, чем тс предложил..
    2. давай уж тогда еще и версию php выясним..
    3. насчет порочности - возможно, но к теме это отношение не имеет..
     
Статус темы:
Закрыта.