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
Форумы портала PHP.SU :: Версия для печати :: ООП, простенький вопрос про конструкторы
Форумы портала PHP.SU » » Объектно-ориентированное программирование » ООП, простенький вопрос про конструкторы

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

1. ataman - 24 Января, 2015 - 13:34:58 - перейти к сообщению
Привет всем

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

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() не выполняется, подскажите в чем проблема ?
2. Мелкий - 24 Января, 2015 - 13:41:18 - перейти к сообщению
Включите вывод E_NOTICE и вам PHP скажет всё, что по этому поводу думает.

И во-вторых, определитесь, какой стиль вы используете.
__construct - это PHP5
Ключевое слово var - PHP4.
3. ataman - 24 Января, 2015 - 16:36:05 - перейти к сообщению
я так и знал, не видно было моих переменных, подключил, как и сказал Мелкий 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();

 

Powered by ExBB FM 1.0 RC1