[英]PHP function to return a reference a variable
我正在嘗試編寫一個函數,該函數將返回對PDO對象的引用。 想要引用的原因是,由於某種原因,如果PDO對象在一次頁面加載中被調用兩次,它將僅返回相同的對象,而不初始化新的對象。 這不是傻嗎? :/
function &getPDO()
{
var $pdo;
if (!$pdo)
{
$pdo = new PDO...
return $pdo;
}
else
{
return &pdo;
}
}
像這樣
使用static $pdo;
。
function getPDO()
{
static $pdo;
if (!$pdo)
{
$pdo = new PDO...
}
return $pdo;
}
在PHP中,對象始終通過引用傳遞。 例如:
class Foo {
public $bar;
}
$foo = new Foo;
$foo->bar = 3;
myfunc($foo);
echo $foo->bar; // 7
function myfunc(Foo $foo) {
$foo->bar = 7;
}
按值傳遞的只是非對象(標量,數組)。 請參閱參考資料 。
關於函數,您需要使變量靜態。 在PHP 5中不推薦使用var
。因此:
function getFoo() {
static $foo;
if (!$foo) {
$foo = new Foo;
}
return $foo;
}
無需“&”號。
另請參見對象和引用 。
要引用變量$foo
,請執行以下操作:
$bar =& $foo;
然后return
$ bar。
你會這樣寫
function getPDO() { static $pdo; if (!$pdo) { $pdo = new PDO... } return $pdo; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.