2009-06-17 14 views
12

Rozważmy następujący kod PHP:Co "&" oznacza tutaj w PHP?

call_user_func(array(&$this, 'method_name'), $args); 

wiem, to znaczy przejść przez odwołanie podczas definiowania funkcji, ale jest to po wywołaniu funkcji?

Odpowiedz

0

To jest przejazd referencyjny.

+2

Czy mam rację, sądząc, że nie ma już zastosowania w PHP 5? –

+0

Wiem, że to oznacza odwołanie podczas definiowania funkcji, ale czy jest to podczas wywoływania funkcji? – omg

+0

@Jeśli masz rację, jest przestarzałe. – alex

7

Od strony Passing By Reference docs:

Możesz przekazać zmienną przez odniesienie do funkcji tak funkcja może zmodyfikować zmienną. Składnia jest następująco:

<?php 
function foo(&$var) 
{ 
    $var++; 
} 

$a=5; 
foo($a); 
// $a is 6 here 
?> 

... W ostatnich wersjach PHP będzie dostać ostrzeżenie, że "call-czas pass-by-reference" jest przestarzała gdy cię użyj & w foo (& $ a);