function x(&$b) {
global $a;
$a = &$b;
}
$a = 10;
$b = 20;
x($b);
print $a; // 10
вопрос, ПОЧЕМУ?!
Форум → Программирование → PHP для идиотов → загадко на поллитра
Страницы: ← Следующая страница →
20 января 2010 г. 15:30, спустя 10 минут 48 секунд
20 января 2010 г. 15:42, спустя 12 минут 2 секунды
20 января 2010 г. 15:45, спустя 2 минуты 9 секунд
20 января 2010 г. 15:48, спустя 3 минуты 29 секунд
// глобальная область
function x(&$b) { $b - ссылается на глобальную область
global $a;
$a = &$b; // &$b - это перезаписанная ссылка на локальную область, то есть $a - теперь ссылаеться на $b, но только для function x
}
$a = 10;
$b = 20;
x($b);
print $a; // - ссылается на локальную область function x и откуда тогда брать значение, если локальная область function x уже не доступна,
// ищем в глобальной
<?php
function x(&$b)
{
global $a;
$a = &$b;
echo 'local function x: a: ' . $a; // 20
}
$a = 10;
$b = 20;
x($b);
echo 'global a: ' . $a; //10
?>
20 января 2010 г. 15:58, спустя 6 минут 43 секунды
20 января 2010 г. 15:59, спустя 56 секунд
$a = &$b;
ты назначил $a как ссылку на объект $b, то есть теперь $a не таже самая глобальная $a, а ссылка на туже область памяти что и $b.20 января 2010 г. 16:02, спустя 1 минуту 45 секунд
20 января 2010 г. 16:03, спустя 1 минуту 39 секунд
20 января 2010 г. 16:03, спустя 5 секунд
20 января 2010 г. 16:04, спустя 37 секунд
20 января 2010 г. 16:04, спустя 13 секунд
function x(&$b) {
$GLOBALS['a'] = &$b;
}
$a = 10;
$b = 20;
x($b);
print $a; // 20
20 января 2010 г. 16:06, спустя 1 минуту 48 секунд
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!