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]   

> Без описания
ataman
Отправлено: 24 Января, 2015 - 13:34:58
Post Id



Новичок


Покинул форум
Сообщений всего: 42
Дата рег-ции: Июль 2013  


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




Привет всем

Есть простенький код с использование конструктора

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. class Triangle {
  4.         var $a;
  5.         var $b;
  6.         var $c;
  7.  
  8.         function __construct($a, $b, $c) {
  9.                 $this -> a = $a;
  10.                 $this -> b = $b;
  11.                 $this -> c = $c;
  12.         }
  13.  
  14.         function S(){
  15.                 echo $s =  $a * $b * $c;
  16.         }
  17. }
  18.  
  19. $T1 = new Triangle(2, 2, 2);
  20.  
  21. $T1 -> S();



Но почему то метод S() не выполняется, подскажите в чем проблема ?
 
 Top
Мелкий Супермодератор
Отправлено: 24 Января, 2015 - 13:41:18
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Включите вывод E_NOTICE и вам PHP скажет всё, что по этому поводу думает.

И во-вторых, определитесь, какой стиль вы используете.
__construct - это PHP5
Ключевое слово var - PHP4.


-----
PostgreSQL DBA
 
 Top
ataman
Отправлено: 24 Января, 2015 - 16:36:05
Post Id



Новичок


Покинул форум
Сообщений всего: 42
Дата рег-ции: Июль 2013  


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




я так и знал, не видно было моих переменных, подключил, как и сказал Мелкий error_reporting(E_NOTICE) и получил сообщение, что переменные а, б, с неопределенны.

Ведь для доступа к переменной в методе осуществляется через $this ->

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. error_reporting(E_NOTICE);
  3. class Triangle {
  4.         function __construct($a, $b, $c) {
  5.                 $this -> a = $a;
  6.                 $this -> b = $b;
  7.                 $this -> c = $c;
  8.         }
  9.  
  10.         function S(){
  11.                 $a = $this -> a;
  12.                 $b = $this -> b;
  13.                 $c = $this -> c;
  14.                 echo $s =  $a * $b * $c;
  15.         }
  16. }
  17.  
  18. $T1 = new Triangle(2, 2, 2);
  19.  
  20. $T1 -> S();
 
 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