PHP Kaynaklar Dönüş

4 Cevap php

Returning by reference is useful when you want to use a function to find to which variable a reference should be bound. Do not use return-by-reference to increase performance. The engine will automatically optimize this on its own. Only return references when you have a valid technical reason to do so.

nedir kalın demek?

Bu gibi bir şey ifade etmez

public function &getHellos() {
    $sql = 'SELECT id, greeting FROM #__hello';
    $data = $this->_getList($sql);
    return $data;
}

i herhangi bir değişkene bağlayıcı değilim nerede?

4 Cevap

Na. You can't pass a reference to a function name. When passing a variable by reference, if you change it's value in your function, it's value will also be changed outside of the function.

Örneğin:

function test(&$var) {
    $var = strtolower($var);
}

function second_test($var) {
    $var = strtolower($var);
}

$var = 'PHP';

second_test($var);
echo $var;

echo "\r\n";

test($var);
echo $var;

Bu görüntüler:

PHP
php

As the second_test method doesn't have the variable passed by reference, it's updated value is only updated inside the function. But the test method as the variable passed by reference. So it's value will be updated inside and outside of this function.

Biz fonksiyonu GetRef(), hangi değişken, $foo veya $bar karar vermek istediğinizde biz referans ile return, referans $foo_or_bar bağlı olmalıdır:

$foo = "foo";
$bar = "bar";
function &GetRef(){
    global $foo, $bar;
    if(rand(0, 1) === 1){
        return $foo;
    }else{
        return $bar;
    }
}
$foo_or_bar =& GetRef();
$foo_or_bar = 'some other value';

var_dump($foo); // either one of this will be 'some other value'
var_dump($bar); // either one of this will be 'some other value'

Derick Ethans de bu in ayrıntılarıyla "References in PHP: An In-Depth Look":

This [returning by reference] is useful, for example, if you want to select a variable for modification with a function, such as selecting an array element or a node in a tree structure.

Iade-by-referans aracılığıyla dizi elemanını seçerek gösteren örnek kod:

function &SelectArrayElement(&$array, $key){
    return $array[$key];
}

$array = array(0, 1, 2);
$element =& SelectArrayElement($array, 0);
$element = 10;
var_dump($array); // array(10, 1, 2)

Ben ByRef atıfta inanıyorum arguments değil functions. Bu, örneğin:

function doStuff(&$value1, &$value2) {
    ...
}

DoStuff () fonksiyonu 2 değerleri döndürmek için çünkü ByRef kabul edilebilir bir kullanımıdır. Sadece DoStuff () sadece bir değerini etkileyebilecek gerekirse, bu işlev tabii ki, değeri, geri olması daha şık olurdu.

Kalın kısmı yerine bu değişkenin değerini bir değişkene bir başvuru tutmak istiyorsanız yararlı demektir.

returning references ile ilgili örnek, php.net üzerine, IMO, oldukça iyi açıklıyor.