Подтвердить что ты не робот

PHP & $string - Что это значит?

Я работаю в Google, но ничего не могу найти.

$x->func(&$string, $str1=false, $str2=false);

что делает & до $string &$string do?

4b9b3361

Ответ 1

Вы назначаете это значение массива по ссылке.

передавая аргумент через ссылку (& $), а через $- то, что когда вы передаете аргумент через ссылку, вы работаете с исходной переменной, означает, что если вы измените ее внутри своей функции, она также будет изменена вне ее, если вы аргумент pass в качестве копии, функция создает экземпляр копии этой переменной и работает над этой копией, поэтому, если вы измените ее в функции, она не будет изменена вне нее

Ссылка: http://www.php.net/manual/en/language.references.pass.php

Ответ 2

& Amp; утверждает, что ссылка на переменную должна быть передана в функцию, а не ее клон.

В этой ситуации, если функция изменит значение параметра, значение переданной переменной также изменится.

Тем не менее, вы должны иметь в виду следующее для PHP 5:

  • Ссылка на время звонка (как вы показали в своем примере) устарела с версии 5.3
  • Передача по ссылке, если она указана в сигнатуре функции, не считается устаревшей, но больше не требуется для объектов, поскольку все объекты теперь передаются по ссылке.

Вы можете найти больше информации здесь: http://www.php.net/manual/en/language.references.pass.php

И здесь много информации здесь: Справочник. Что означает этот символ в PHP?

Пример поведения строк:

function changeString( &$sTest1, $sTest2, $sTest3 ) {
    $sTest1 = 'changed';
    $sTest2 = 'changed';
    $sTest3 = 'changed';
}

$sOuterTest1 = 'original';
$sOuterTest2 = 'original';
$sOuterTest3 = 'original';

changeString( $sOuterTest1, $sOuterTest2, &$sOuterTest3 );

echo( "sOuterTest1 is $sOuterTest1\r\n" );
echo( "sOuterTest2 is $sOuterTest2\r\n" );
echo( "sOuterTest3 is $sOuterTest3\r\n" );

Выходы:

C:\test>php test.php

sOuterTest1 is changed
sOuterTest2 is original
sOuterTest3 is changed

Ответ 3

& - Перейдите по ссылке. Он передается по ссылке вместо строкового значения.

Ответ 4

& = Передача по ссылке:

Ссылки позволяют двум переменным ссылаться на один и тот же контент. Другими словами, переменная указывает на ее содержание (а не на то, что становится содержимым). Передача по ссылке позволяет двум переменным указывать одно и то же содержимое под разными именами. Амперсанд (и) помещается перед ссылкой на переменную.

Ответ 5

Это означает, что вы передаете ссылку на строку в этот метод. Все изменения, сделанные для строки внутри метода, будут отражены также вне этого метода в вашем коде.

См. также: PHP = & Оператор

Пример:

$string = "test";
$x->func(&$string); // inside: $string = "test2";
echo $string; // test2

без оператора и, вы все равно увидите "тест" в своей переменной.