que - ¿Qué significa "->" significa/se refiere en PHP?
urlencode php (12)
-> es el utilizado para acceder a los métodos y atributos de un objeto. Consulte el php.net/manual/en/language.oop5.php .
Esta pregunta ya tiene una respuesta aquí:
- Referencia - ¿Qué significa este símbolo en PHP? 18 respuestas
¿Qué significa ->
mean / referir en PHP?
En lo siguiente de WordPress, sé lo que hace la sentencia if
, por ejemplo, pero ¿qué hace el ->
do?
<?php if ( $wp_query->max_num_pages > 1 ) : ?>
Accede a un miembro del objeto de la izquierda con el nombre a la derecha.
Accede al miembro del objeto; $ obj-> prop accede a la propiedad "prop" de cualquier objeto en la variable $ obj.
En muchos otros lenguajes de programación, se usa un período para este propósito: obj.prop u obj.method (), por ejemplo.
En primer lugar, debes comprender lo siguiente. En PHP y en muchos otros idiomas, tenemos los siguientes tipos de entidades:
- Variables
- Arrays
- Objetos
El ->
permite acceder a un método o valor dentro de un objeto, de la misma manera que []
permite acceder a los valores dentro de una matriz.
Una clase es como un cuadro, y dentro de ese cuadro hay muchos elementos, y cada elemento puede interactuar entre sí, ya que están dentro del mismo cuadro.
Por ejemplo:
class Box
{
function firstItem()
{
}
function secondItem()
{
}
}
Lo anterior es lo que llamamos una clase. Básicamente es una pieza estructurada de código que realmente no hace nada hasta que se convierte en un objeto .
El objeto se crea utilizando la new
palabra clave, que crea una instancia de una clase y crea un objeto a partir de ella.
$box = new Box;
Ahora el $box
anterior, que es un objeto creado a partir de la clase Box, tiene métodos dentro, como firstItem()
.
Estas son solo funciones aparte de dentro de las cuales tenemos otra variable llamada $this
y esto se usa para acceder a otros métodos dentro de ese objeto.
Ahora, para acceder a los métodos desde fuera de los objetos, debe usar el operador descrito en su pregunta.
$box->firstItem();
El operador ->
te permitirá ejecutar el método desde la variable $box
.
Es como el punto (.) En JavaScript y Java. Es solo un operador de acceso simple.
Esto es muy simple de entender.
En PHP usamos -> para acceder a un método / propiedad definida dentro de una clase.
Entonces, en su caso ($ wp_query-> max_num_pages), está intentando obtener el valor de max_num_pages que es una variable de la clase $ wp_query.
$ wp_query información del objeto que define la solicitud actual, y luego $ wp_query determina con qué tipo de consulta está tratando (posiblemente un archivo de categoría, archivo con fecha, feed o búsqueda) y recupera las publicaciones solicitadas. Conserva mucha información sobre la solicitud, que puede extraerse en una fecha posterior.
Use ->
para acceder a campos, métodos en un objeto, es paralelo a []
en variables de matriz ( $array[''field'']
es $object->field
). En WP lo usarás en $post
por ejemplo, ya que es un objeto.
$object->property
se utiliza para acceder a la propiedad de cualquier objeto.
->
accede a un miembro de un objeto. Entonces $wp_query->max_num_pages
está accediendo al campo max_num_pages
en el objeto $wp_query
. Se puede usar para acceder a un método o a un campo perteneciente a un objeto, y si está familiarizado con C ++ o Java, es equivalente a myObject.myField
->
se usa básicamente para acceder a un archivo de un objeto. Analogioous a los atributos en Java.
por ej.
class Student {
String name;
int rollno;
}
Student.name accede al nombre de un objeto estudiantil dado.
Así es como PHP maneja los objetos. Básicamente, $wp_query
es un objeto que tiene métodos (funciones) y atributos a los que se puede acceder mediante los caracteres ->
.
PHP no comenzó con objetos, por lo que ahora lo ves como una idea de último momento. Encuentro que ->
es una manera desordenada de manejarlo, en comparación con decir Ruby, que se construyó con objetos de la base.
Puede encontrar más en: php.net/manual/en/language.oop5.php
<?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;
?>
En el ejemplo anterior, no podemos llamar a una función que es un método privado print_name. Además, tampoco podemos llamar a la variable de nombre que se establece como propiedad privada.