2009-06-17 9 views
12

Betrachten Sie diese PHP-Code:Was bedeutet "&" hier in PHP?

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

Ich weiß, es bedeutet Pass-by-Referenz, wenn Funktionen definieren, aber es ist, wenn eine Funktion aufgerufen wird?

Antwort

0

Es ist ein Pass-by-Referenz.

+2

Bin ich der Meinung, dass es ab PHP 5 nicht länger gilt? –

+0

Ich weiß, es bedeutet Pass-by-Reference bei der Definition von Funktionen, aber ist es beim Aufruf einer Funktion? – omg

+0

@Ian du bist richtig, es ist veraltet. – alex

7

Von der Passing By Reference docs Seite:

Sie eine Variable als Verweis übergeben kann auf eine Funktion, so kann die Funktion die Variable ändern. Die Syntax lautet wie folgt :

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

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

... In den letzten Versionen von PHP finden Sie eine Warnung erhalten, dass "Call-Zeit Pass-by-reference" ist veraltet, wenn Sie Verwenden Sie & in foo (& $ a);