Что означает ->
означает / ссылается на PHP?
В следующем из WordPress я знаю, что делает оператор if
, например, но что делает ->
делать?
<?php if ( $wp_query->max_num_pages > 1 ) : ?>
->
обращается к члену объекта. Таким образом, $wp_query->max_num_pages
получает доступ к полю max_num_pages
в объекте $wp_query
. Его можно использовать для доступа к методу или полю, принадлежащему объекту, и если вы знакомы с C ++ или Java, это эквивалентно myObject.myField
Во-первых, вы должны понимать следующее. В PHP и многих других языках мы имеем следующие типы entites:
->
позволяет вам получить доступ к методу или значению внутри объекта, так же, как []
позволяет вам получать доступ к значениям в массиве.
Класс похож на поле, и внутри этого поля есть много элементов, и каждый элемент может взаимодействовать друг с другом, поскольку они находятся в одном поле.
Например:
class Box { function firstItem() { } function secondItem() { } }
Выше мы называем класс. Это в основном структурированный фрагмент кода, который на самом деле ничего не делает, пока он не станет объектом .
Объект создается с помощью new
ключевого слова, которое создает экземпляр класса и создает из него объекты.
$box = new Box;
Теперь указанный выше $box
, который является объектом, созданным из класса Box, имеет методы внутри, такие как firstItem()
.
Это как функции, кроме того, внутри них у нас есть другая переменная с именем $this
и это используется для доступа к другим методам внутри этого объекта.
Теперь, чтобы получить доступ к методам извне объектов, вы должны использовать оператор, описанный в вашем вопросе.
$box->firstItem();
Оператор ->
позволит вам выполнить метод из $box
переменной $box
.
Это похоже на период (.) В JavaScript и Java. Это просто простой оператор доступа.
-> используется для доступа к методам и атрибутам объекта. См. Руководство по классам и объектам PHP .
Он обращается к члену объекта слева с именем справа.
Он обращается к члену объекта; $ obj-> prop получает доступ к свойству «prop» любого объекта в переменной $ obj.
Во многих других языках программирования для этой цели используется период: obj.prop или obj.method ().
Это то, как PHP обрабатывает объекты. По сути, $wp_query
– это объект, который имеет методы (функции) и атрибуты, к которым можно получить доступ через символы ->
.
PHP не начинался с объектов, поэтому вы видите его теперь как своего рода запоздалая мысль. Я нахожу ->
быть грязным способом справиться с этим, по сравнению с Ruby, который был построен с объектами из фонда.
Вы можете найти более подробную информацию: http://php.net/manual/en/language.oop5.php
Это очень просто понять.
В PHP мы используем -> для доступа к методу / свойству, определенному внутри класса.
Итак, в вашем случае ($ wp_query-> max_num_pages) вы пытаетесь получить значение max_num_pages, которое является переменной класса $ wp_query.
$ wp_query, определяющая текущий запрос, а затем $ wp_query определяет, к какому типу запроса он имеет дело (возможно, к архиву категории, датированному архиву, фиду или поиску) и извлекает запрошенные сообщения. Он сохраняет много информации о запросе, который можно вытащить позже.
<?php class Main{ private $name = 'My Name is Febri.<br/>'; private function print_name(){ echo $this -> name; } } class Descend extends Main{ function print(){ $this -> print_name(); } } $try = new Descend; $try -> print(); echo $try -> name; ?>
В приведенном выше примере мы не можем вызвать функцию, которая является частным методом print_name. Кроме того, мы также не можем вызывать переменную имени, которая задана как частное свойство.
->
в основном используется для доступа к элементу объекта. Аналогично атрибутам в Java.
например.
class Student { String name; int rollno; }
Student.name обращается к имени данного объекта-объекта.
Используйте ->
для доступа к полям, методам в объекте, параллельным []
в переменных массива ( $array['field']
– $object->field
). В WP вы будете использовать его в $post
например, поскольку это объект.
$object->property
используется для доступа к свойству любого объекта.