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

Форум PHP

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

 

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

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

тема: Как правильно ставить указатели на переменные
 
 автор: sviatoslav   (26.08.2007 в 13:22)   письмо автору
 
 

имеется два класса

    class class_A {
         var $a1;
         var $a2;
         var $a3;
         ...
    }

    class class_B {
         var $b1;
         var $b2;
         var $b3;
         var $ba;
         
         function class_B($a)   { 
               $this->ba = & $a;
         }
         ...
    } 


соответственно по ним объявляются переменные

   $a = new class_A(); 
   $b = new class_B($a); 


необходимо присвоить переменной $b->ba из класса class_B указатель на переменную $a класса class_A.

Однако присвоения указателя не происходит. Так как при дальнейшей изменении $a эти изменения не отображаются в переменной b]$b->ba[/b].

Попробовал присваивать указатель после отработки конструктора класса class_B.


   $a = new class_A(); 
   $b = new class_B(); 

   $b->ba = &$a;

все прекрасно работает. Подскажите почему так происходит.

   
 
 автор: bronenos   (26.08.2007 в 14:22)   письмо автору
 
   для: sviatoslav   (26.08.2007 в 13:22)
 

         function class_B($a)   {  
               $this->ba = & $a; 
         }


после выхода из функции локальная переменная уничтожается ($a)

   
 
 автор: sviatoslav   (26.08.2007 в 14:38)   письмо автору
 
   для: bronenos   (26.08.2007 в 14:22)
 

А как тогда можно передать указатель?

   
 
 автор: bronenos   (26.08.2007 в 14:57)   письмо автору
 
   для: sviatoslav   (26.08.2007 в 14:38)
 

global $a;

   
 
 автор: sviatoslav   (26.08.2007 в 15:12)   письмо автору
 
   для: bronenos   (26.08.2007 в 14:57)
 

>global $a;
Этот вариант не очень подходит. Хотелось бы в функцию передать адрес на переменную как это можно делать на C++.

   
 
 автор: sviatoslav   (26.08.2007 в 15:09)   письмо автору
 
   для: bronenos   (26.08.2007 в 14:22)
 

Да но $a созданная от класса живет. И я пытаюсь сохранить указатель на нее.

   
 
 автор: bronenos   (26.08.2007 в 22:10)   письмо автору
 
   для: sviatoslav   (26.08.2007 в 15:09)
 

может попробовать тогда передавать &$a, а внутри коонструктора ставить = $a

   
Rambler's Top100
вверх

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