array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'language.references.pass.php', 1 => 'Gönderimle Aktarım', ), 'up' => array ( 0 => 'language.references.php', 1 => 'Gönderimlerle İlgili Herşey', ), 'prev' => array ( 0 => 'language.references.arent.php', 1 => 'Gönderimler Ne Değildir?', ), 'next' => array ( 0 => 'language.references.return.php', 1 => 'Gönderimle Döndürme', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'language/references.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
Bir değişkeni bir işleve gönderimle aktarabilirsiniz, böylece işlevin bağımsız değişkenlerini değiştirebilirsiniz. Sözdizimi şöyledir:
<?php
function işlev(&$değişken)
{
$değişken++;
}
$a=5;
foo($a);
// Burada $a artık 6'dır
?>
Bilginize: İşlevin çağrıldığı yerde gönderim yapıldığına dair bir belirtinin olmadığına dikkat ediniz; gönderim sadece işlevin üzerindedir. İşlev tanımı bağımsız değişkeni gönderimle gerektiği gibi aktarmak için tek başına yeterlidir.
Aşağıdakiler bir işleve gönderimle aktarılabilir:
işlev($a)
şeklinde bir değişken.
Bir işlevden döndürerek bir gönderim. Örnek:
<?php
function foo(&$var)
{
$var++;
}
function &bar()
{
$a = 5;
return $a;
}
foo(bar());
?>
Sonuç tanımsız olacağından, başka hiçbir ifade gönderimle aktarılamaz. Örneğin, aşağıdaki gönderimle aktarım örneği geçersizdir:
<?php
function foo(&$var)
{
$var++;
}
function bar() // Dikkat, & yok
{
$a = 5;
return $a;
}
foo(bar()); // Bir uyarı üretir
foo($a = 5); // Bir ifade, değişken değil
foo(5); // Ölümcül hata üretir
class Foobar
{
}
foo(new Foobar()) // PHP 7.0.7'dan beri bir uyarı üretmekte
// Uyarı: Sadece değişkenler gönderime göre aktarılmalıdır.
?>