簡體   English   中英

PHP函數返回引用變量

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

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