глобальные переменные как переменные функции

Rynor

stay hungry
глобальные переменные как переменные функции

счас пойду почитаю но как всегда сначала спрошу:
уважаемые, глючит сабж...
то есть вот это работает:
PHP:
$i = 0;
function f() {
global  $i;
$i = 1;
return $i;
}
echo f();
echo $i;
эха кричит нам 1,1

PHP:
$i = 0;
function f($iii) {
$iii = 1;
return $iii;
}
echo f($i);
echo $i;
1,0

WTF? не понимает функция глобальность входного параметра...

спасибо за помощь!
 

Demiurg

Guest
Все правильно. Читай про облисть видимости и про функции.
 

Rynor

stay hungry
ыыыыыыыы нашел

Making arguments be passed by reference
By default, function arguments are passed by value (so that if you change the value of the argument within the function, it does not get changed outside of the function). If you wish to allow a function to modify its arguments, you must pass them by reference.

If you want an argument to a function to always be passed by reference, you can prepend an ampersand (&) to the argument name in the function definition:

PHP:
function add_some_extra(&$string)
{
    $string .= 'and something extra.';
}
$str = 'This is a string, ';
add_some_extra($str);
echo $str;
// outputs 'This is a string, and something extra.'
 

RomikChef

Guest
А при чем тут глобальные переменные и функции?
Во втором коде ты просто нигде не присваиваешь $i никакого значения.
 
Сверху