Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
87 / 22 / 7
Регистрация: 23.09.2012
Сообщений: 671

Изучаю ООП не пойму почему не выводит

28.10.2014, 15:12. Показов 1006. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
class Member {
 
 private $username;
 
 public function __construct( $username ) {
   $this->username = $username;
 }
 
 public function getUsername() {
   return $this->username;
 }
}
 
class Topic {
 
 private $member;
 private $subject;
 
 
 public function __construct( $member, $subject ) {
   $this->member = $member;
   $this->subject = $subject;
 }
 
 public function getUsername() {
   return $this->member->getUsername();
   
   
 }
}
 
$aMember = new Member( "fred" );
$aTopic = new Topic( $aMember, "Hello everybody!" );
echo $aTopic->getUsername(); // отобразит "fred"
?>
В итоге он выводит fred. Все правильно. Но я хочу чтобы он показал еще и "Hello everybody!"
Hello everybody! - это у нас переменная $subject. Правильно?
Я добавляю $subject в метод getUsername так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
class Member {
 
 private $username;
 
 public function __construct( $username ) {
   $this->username = $username;
 }
 
 public function getUsername() {
   return $this->username;
 }
}
 
class Topic {
 
 private $member;
 private $subject;
 
 
 public function __construct( $member, $subject ) {
   $this->member = $member;
   $this->subject = $subject;
 }
 
 public function getUsername() {
   return $this->member->getUsername();
   return $this->subject->getUsername();
   
   
 }
}
 
$aMember = new Member( "fred" );
$aTopic = new Topic( $aMember, "Hello everybody!" );
echo $aTopic->getUsername(); // отобразит "fred"
?>

Но ничего не меняется. В чем дело?
P.S. возможно для вас это глупо, но я только изучаю ООП и хочу с самых азов понимать что происходит в коде...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.10.2014, 15:12
Ответы с готовыми решениями:

Изучаю Python, сейчас учу основы ООП, где можно найти задачи по ООП
Скиньте пожалуйста источники с задачами(желательно на русском)

Ооп. Изучаю основы, обьясните на примере
Класс: форум - сайт для общения. Объект форум - собственно любой форум. Тут все понятно. Форумный движок тоже класс, соответственно...

Изучаю ООП можно или нет так?
Это index: &lt;?php include('classes/database.class.php'); $object = new DB; $nick = &quot;Alex&quot;; $password = &quot;1&quot;; ...

3
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
28.10.2014, 15:19
Цитата Сообщение от delphi-sly Посмотреть сообщение
В чем дело?
return возвращает значение и прерывает работу функции/метода (http://php.net/manual/ru/function.return.php).
У Вас вот это:
PHP
1
return $this->member->getUsername();
Отработает, а до второго не дойдёт дело.
1
87 / 22 / 7
Регистрация: 23.09.2012
Сообщений: 671
28.10.2014, 15:29  [ТС]
Спасибо, тогда следующий вопрос, как сделать, чтобы доходило?
Логически я потыкал:
PHP
1
2
3
4
5
 public function getUsername() {
   $this->member->getUsername();
     $this->subject->getUsername();
   return;
 }
Так...
но, как понимаете не успешно. Так как сделать?
0
 Аватар для V@D!k
249 / 249 / 98
Регистрация: 26.07.2010
Сообщений: 1,685
28.10.2014, 15:43
как вариант, занести 2 значения в массив и вернуть его
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.10.2014, 15:43
Помогаю со студенческими работами здесь

Изучаю ООП и возникают ошибки "unexpected '(', expecting ',' or ';'"
Здравствуйте, я изучаю ООП и практикуя возникают вопросы не подвласные моему разуму, пока ) Надеюсь тут найдется добрые люди, кто направить...

Никак не пойму ООП
public class Main { static Cat cat = new Cat(); static People people = new People(); public static void...

ООП, графика. Не пойму в чем ошибки
Всем добрый день. Есть программа, никак не могу понять на что ругается компилятор. Пишет следующее: (11,25) function header doesn't match...

Не пойму в чем ошибка при использовании ООП
Подскажите пожалуйста, почему в этом коде VC++ выдает ошибку: Error: &quot;Friends::Friends(const char* pName)&quot; - (Объявлено в строку...

Почему солнце круглое, а небо зеленое. Почему ооп такое странное?
Учил я пхп. Самоучитель PHP 5/6 и сайт метанит. И все было хорошо. Чтобы закрепить основы решил написать что-то такое: 1. Сохранить БД в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru