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

Статус
В этой теме нельзя размещать новые ответы.

Bobrov

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

$nau->pid = $andy->uid = $andy->units[$i];
 
Для просмотра ссылки Войди или Зарегистрируйся

Для этого используют такой синтаксис: $имя_объекта->название_свойства или $имя_объекта->название_метода(список аргументов). Заметим, что перед названием свойства или метода знака $ не ставят.
 
Пример, я так понимаю речь про массивы, но вот в книгах таких обозначений я не встречал.

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

В объекте $nau есть свойство (судя по всему, публичная переменная) pid.

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

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

Т.е. -> обозначает обращение к свойству или методу объекта.
А что такое объекты прекрасно рассказывается по вышеуказанным ссылкам, а также в куче книг про PHP.
 
так же добавлю, что если у данных объектов нет этих свойств, то они создаются..
 
Это значит, что полям $nau->pid и $andy->uid присваивается значение $andy->units[$i];
 
так же добавлю, что если у данных объектов нет этих свойств, то они создаются..
Бред.
Они создадутся только если ты специально этим озадачишься (__set/__get)
 
PHP_Master
внимательно читайте доки - эти методы (как и другие "магические") не явно присутствуют в любом! классе, и при объявлении не существующего свойства, не явно будет вызвам метод __set(), который и создаст св-во объекта.. интереса ради попробуйте:
PHP:
class test{}
$foo = new test;
$foo->bar = 'some';
echo $foo->bar;
в поток получите "some" и отсюда и далее свойство bar объекта $foo будет доступно..

зы.. естественно никто не мешает мне переопределить __set()..
 
Попробуй этот фокус на статических классах.
Такой подход вообще порочен.
 
1. к статическим свойствам и методам и обращаются иначе, чем тс предложил..
2. давай уж тогда еще и версию php выясним..
3. насчет порочности - возможно, но к теме это отношение не имеет..
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху