Что значит ampersand в заявлении функции?

Следующий код, кажется, делает то же самое с и без ampersand (y):

<?php

class Cartera {

    public $dinero = 93;

    public function &muestraLaPasta() { // Si quito este ampersand
        return $this->dinero;
    }

}

$carteraDeMaria = new Cartera;
$miPastaGansa = &$carteraDeMaria->muestraLaPasta(); // y este
echo $miPastaGansa;                // el resultado es el mismo

?>

Так, если я они оставляю как будто я снимаю их результат, это тот же самый, печатает 93. Зачем они служат?

Благодаря ответу Ивана Ботеро, что эта функция возвращает ссылку.
Но кажется, что это не ссылка, способная выживать, если сама. Если я распределяю в переменную эту переменную, он содержит стоимость не снабжает ссылками ее, несмотря на то, что то, что я распределил ему, является результатом этой функции, которая предполагает, что это функция, которая возвращает ссылку.

<?php
class Cartera {
    public $dinero = 93;

    public function &muestraLaPasta() { // Esta función devuelve una referencia
        return $this->dinero;
    }
}

$carteraDeMaria = new Cartera;
$miPastaGansa = $carteraDeMaria->muestraLaPasta(); // Parecería que almaceno esa 
                                                   //referencia en una variable
echo $miPastaGansa . "\n";                // el resultado es el mismo

// Cuanto dinero tiene Maria
echo $carteraDeMaria->dinero . "\n";

// Cuanto dinero tiene Maria ahora
$miPastaGansa = 5000; // Pero las modificaciones a través de esa referencia 
                  // almacenada en esta variable
echo $carteraDeMaria->dinero . "\n";  // No se propagan

Я думаю, что есть все еще какая-то тонкая деталь этой ссылки, возвращенной функцией, которая убегает от меня.
Как дело в том, что я должен использовать другой и перед тем, как распределять ее? Казалось бы, что тогда у меня есть ссылка на ссылку на деньги. Вместо просто ссылки на деньги, которые являются тем, что я хочу.

22
задан 04.07.2017, 23:16
0 ответов