簡體   English   中英

通過引用返回PHP

[英]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

https://3v4l.org/uJHSF

所有代碼段的評估(帶有第二個函數調用):
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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM