Πέρασμα με αναφορά
Μπορείτε να περάσετε μεταβλητές σε συναρτήσεις με αναφορά, έτσι ώστε η συνάρτηση να μπορεί να τροποποιήσει τα ορίσματα της. Η σύνταξη έχει ως ακολούθως:
<?php
function foo (&$var)
{
$var++;
}
$a=5;
foo ($a);
// $a is 6 here
?>
Τα ακόλουθα μπορούν να περαστούν με αναφορά:
- Η μεταβλητή, π.χ. foo($a)
- Μια νέα δήλωση, π.χ. foo(new foobar())
-
Αναφορά, που επιστρέφεται από μια συνάρτηση, π.χ.:
<?php
function &bar()
{
$a = 5;
return $a;
}
foo(bar());
?>
Οποιαδήποτε άλλη έκφραση δεν θα πρέπει να χρησιμοποιείται στο πέρασμα με αναφορά, αφού το αποτέλεσμα που θα προκύπτει να είναι απροσδιόριστο. Για παράδειγμα, τα ακόλουθα παραδείγματα περάσματος με αναφορά δεν είναι έγκυρα:
<?php
function bar() // Note the missing &
{
$a = 5;
return $a;
}
foo(bar());
foo($a = 5) // Expression, not variable
foo(5) // Constant, not variable
?>