Вы можете передавать переменные в пользовательскую функцию по ссылке, если вы хотите разрешить функции модифицировать свои аргументы. В таком случае, пользовательская функция сможет изменять аргументы. Синтаксис таков:
<?php
function foo(&$var)
{
$var++;
}
$a=5;
foo($a);
// $a здесь равно 6
?>
Заметьте, что в вызове функции отсутствует знак ссылки - он есть только в определении функции. Этого достаточно для корректной передачи аргументов по ссылке.
<html>
<head>
<title>Reference as Function Arguments</title>
</head>
<body>
<?php
function ref_test1($var) {
$var = $var * 2;
}
$a = 10;
ref_test1($a);
echo $a; // выводит 10
echo "<hr />";
function ref_test(&$var) {
$var = $var * 2;
}
$a = 10;
ref_test($a);
echo $a; // выводит 20
// Аналог
echo "<hr />";
function ref_test2($a) {
global $a;
$a = $a * 2;
}
$a = 10;
ref_test2($a);
echo $a; // выводит 20
?>
</body>
</html>
<?php
function foo(&$var)
{
$var++;
}
$a=5;
foo($a);
// $a здесь равно 6
?>
Заметьте, что в вызове функции отсутствует знак ссылки - он есть только в определении функции. Этого достаточно для корректной передачи аргументов по ссылке.
<html>
<head>
<title>Reference as Function Arguments</title>
</head>
<body>
<?php
function ref_test1($var) {
$var = $var * 2;
}
$a = 10;
ref_test1($a);
echo $a; // выводит 10
echo "<hr />";
function ref_test(&$var) {
$var = $var * 2;
}
$a = 10;
ref_test($a);
echo $a; // выводит 20
// Аналог
echo "<hr />";
function ref_test2($a) {
global $a;
$a = $a * 2;
}
$a = 10;
ref_test2($a);
echo $a; // выводит 20
?>
</body>
</html>
Комментариев нет:
Отправить комментарий