Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Создание объекта одного класса внутри другого класса

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
kir55rus
Отправлено: 22 Августа, 2013 - 12:44:12
Post Id


Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Янв. 2012  
Откуда: Омск, Россия


Помог: 0 раз(а)




Здравствуйте! Только начинаю разбираться с ООП, возник вопрос.

Почему нельзя создать объект одного класса внутри другого класса?

Пример: (11 строка)
PHP:
скопировать код в буфер обмена
  1. class my1{
  2.         private $a=5;
  3.        
  4.         public function get(){
  5.                 return $this->a;
  6.         }
  7.        
  8. }
  9.  
  10. class my2{
  11.         private $b = new my1();
  12.        
  13. }



На деле хочу сделать следующее:
Есть класс-обертка для curl
Хочу написать класс, с помощью которого буду авторизовываться/совершать действия/выходить из аккаунта на одном сайте
Для этого мне надо использовать некоторые методы из класса-обертки


Может неправильно строю код? Набросайте пример, как надо действовать в таком случае (где и как создавать объект). Спасибо!


P.S. Как я понял
class my_class{...} - сам класс, а
$my_obj = new my_class(); - его объект. Поправьте, если не прав
 
 Top
avtor.fox
Отправлено: 22 Августа, 2013 - 12:48:37
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




PHP:
скопировать код в буфер обмена
  1. class my1{
  2.         private $a=5;
  3.        
  4.         public function get(){
  5.                 return $this->a;
  6.         }
  7.        
  8. }
  9.  
  10. class my2{
  11.         private $b;
  12.  
  13.         public function __construct()
  14.         {
  15.                 $this->b = new my1;
  16.         }
  17.        
  18. }
 
 Top
EuGen Администратор
Отправлено: 22 Августа, 2013 - 12:48:58
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Создать можно, но не так, как Вы указали. Значения, которые указываются при инициализации свойств, вычисляются на этапе интерпретации и в результирующем опкоде должны быть уже вычисленными, таким образом, они могут содержать только константные выражения (полностью определённые в момент написания).


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
armancho7777777 Супермодератор
Отправлено: 22 Августа, 2013 - 12:52:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Ответили уже...

(Отредактировано автором: 22 Августа, 2013 - 12:53:14)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB