честно перечитал уже много, на практике не могу понять для чего ставится & в функциях.. Пример: PHP: <?php function func(&$var1, &$var2) { $res = $var1 + $var2; $var2 = $var2 * 2; $var1 = $var1 * $var2; return $res; } $a = 3; $b = 4; echo func($a, $b); // 7 echo "<br>$a<br>"; // 12 echo "$b"; //8 ?> Если убрать & в условии, то будет выдавать просто значение из переменной $a и $b. Собственно интересно почему?) Из за того что каждая переменная уже получила свое значение? =) блин ну не пойму =)
передача по ссылке. обычно внутри функции ты можешь делать с переменными всё что захочешь, и это никак не отразится на переменной, которую передали в функцию. PHP: <?php function func_1($var){ $var = 111111; } $a = 10; func_1($a); echo $a; // 10 ?> однако если ты хочешь, чтобы внутри функции менялась переменная, которую ты туда передаёшь - делаешь передачу по ссылке. PHP: <?php function func_1(&$var){ $var = 111111; } $a = 10; func_1($a); echo $a; // 111111 ?>
В данном случае я передаю переменную func_1($a); и если стоит &$var то она меняется внутри функции самой? вообщем тоже самое) я думаю разобрался))) спасибо. p.s ох уж эти функции =(
в некоторых случаях (я не помню в каких) даже без значка передается по ссылке. резонно передавать по ссылке тяжелые вещи типа толстенных массивов.
Есть еще вопрос =) Например у меня очень часто используется запрос в определенную базу и берется count(), можно ведь написать функцию чтобы в условие добавить определенные данные. Скажем какая таблица, вызвать функцию и получить результат..
ну возможно такое сделать? скажем чтобы не мучать мозг вызвать count_func($dbname, ...); к примеру =)