Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ссылки и их значения
 
 автор: demonow   (18.01.2012 в 16:43)   письмо автору
 
 

Кто-нибудь может обьяснить природу даного поведения интерпретатора:

<?php
$a
=$b
echo $a;// интерпретатор ругается на отсутсвие переменной $b- все тут понятно.
////////////////////////////////////////
$a=&$b;
echo 
$a;// интерпретатор молчит. тоесть на отсутвие переменной он ругается а на ее ссылку нет? в чем подвох?

?>

  Ответить  
 
 автор: cheops   (18.01.2012 в 17:53)   письмо автору
 
   для: demonow   (18.01.2012 в 16:43)
 

А чего бы ему ругаться? Ссылки никто не отменял (передача параметров по ссылкам внутрь функций устарела, вернее явное указание ссылки, так как они теперь неявно используются). Вот смотрите, $b не будет равно 3, и $a и $b указывают на один и тот же участок памяти - поменяйте его и обе переменные поменяют свое значение, это и есть ссылки (скажите спасибо, что указателей нет :).
<?php
  $a 
3;
  
$b = &$a;
  
$a++;
  echo 
$b// 4
?>

  Ответить  
 
 автор: cheops   (18.01.2012 в 17:55)   письмо автору
 
   для: demonow   (18.01.2012 в 16:43)
 

Или вы про то, что интерпретатор не выдает замечание, так переменная $b создается при первом обращении, кроме того, чего ругаться, если обе переменные указывают на одну и ту же область памяти, т.е. явно инициализированы и пользователь понимает что делает, раз уже стал ссылки использовать.

  Ответить  
 
 автор: demonow   (18.01.2012 в 18:42)   письмо автору
 
   для: cheops   (18.01.2012 в 17:55)
 

Непонятность возникла из-за того, что при коде
$a=&$b 
я думал что переменная $b уже должная иметь значение, тоесть где-то вверху определена b и мы просто делаем для нее ссылку, а здесь получается мы присваеваем переменной $a глухую ссылку без значения.Надеюсь обьяснил свои соображения))
я ж из-за чего так парюсь.Просто в книге есть такой код

function fun()
{
$a=&$GLOBALS['a'];
$a=10;
}
fun();
echo $a;

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования