當我讀笨的代碼,我發現寫了一些功能如下:函數參考有什麼好處?
function &get_instance()
{
global $CI, $OBJ;
if (is_object($CI))
{
return $CI;
}
return $OBJ->load;
}
我能理解變量refrence,但我也很難得到這個through.Is有必要使用此功能,風格和任何?效益?
謝謝。
當我讀笨的代碼,我發現寫了一些功能如下:函數參考有什麼好處?
function &get_instance()
{
global $CI, $OBJ;
if (is_object($CI))
{
return $CI;
}
return $OBJ->load;
}
我能理解變量refrence,但我也很難得到這個through.Is有必要使用此功能,風格和任何?效益?
謝謝。
在PHP的語法中,這意味着函數返回一個引用而不是一個值。例如:
<?php
$foo = 'foo';
function & get_foo_ref()
{
global $foo;
return $foo;
}
// Get the reference to variable $foo stored into $bar
$bar = & get_foo_ref();
$bar = 'bar';
echo $foo; // Outputs 'bar', since $bar references to $foo.
?>
在上面的例子中,去除功能decleration的&將使$ foo的變量仍然含有「富」,因爲只有值,而不是引用從函數返回。
這在PHP4中更常用,因爲它沒有通過引用傳遞對象,而是將它們克隆。因此,必須通過引用傳遞對象變量以避免不必要的克隆。這在PHP5中不再是這種情況,並且引用不應該用於此目的。
但是,返回引用的函數並不是完全無用的(或者當不用於替換對象引用時,不好的做法)。例如,我個人在創建一個將「路徑」傳遞給函數的腳本時使用了它們,該函數返回對該路徑中的變量的引用,以便爲其設置值並讀取該值。由於函數的遞歸性質,需要返回引用。
它與變量引用的概念相同,實際上,當您想要將REFERENCE返回給某個變量而不是該值本身時,此「樣式」是必需的。
解釋這裏的手冊:http://www.php.net/manual/en/functions.returning-values.php
沒有,沒有好處。這對於php4是必要的,但在php5中這是一種不好的做法。
+1爲質量答案 – user187291 2010-03-16 14:20:32