[英]Return by reference PHP
在文檔中,我看到了如何設置2 &
,為什么?
可以說我之間有什么區別
這個1
function &func()
{
static $static = 0;
$static++;
return $static;
}
$var1 = func();
echo "var1:", $var1; // 1
而這個2:
function func()
{
static $static = 0;
$static++;
return $static;
}
$var1 = func();
echo "var1:", $var1; // 1
或替代變體
這個1
function &func()
{
static $static = 0;
$static++;
return $static;
}
$var1 = &func();
echo "var1:", $var1; // 1
而這個2:
function func()
{
static $static = 0;
$static++;
return $static;
}
$var1 = &func();
echo "var1:", $var1; // 1
第一個this 2
和第二個this 1
之間只有一個區別。 其他所有錯誤地嘗試return by reference
。
this 2
的第二this 2
甚至拋出PHP通知( Notice: Only variables should be assigned by reference in ... on line ...
)。
區別在於,第一個this 2
通過值返回,而第二個this 1
通過引用返回。 由於它是參考,因此可以在函數外部更改變量。
function &func()
{
static $static = 0;
$static++;
return $static;
}
$var1 = &func();
echo "var1:", $var1; // 1
$var1 = 10;
$var1 = &func();
echo "\nvar1:", $var1; // 11
所有代碼段的評估(帶有第二個函數調用):
1st this 1: https : //3v4l.org/p6erT
1st this 2: https : //3v4l.org/9OcaC
這個2號1: https : //3v4l.org/uJHSF
2號2: https : //3v4l.org/qJ3qO
另請參見PHP手冊: https : //secure.php.net/manual/zh/language.references.return.php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.