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]   

> Без описания
souta
Отправлено: 18 Июня, 2013 - 20:39:56
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Окт. 2012  


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

[+]


CODE (PHP):
скопировать код в буфер обмена
  1. interface С
  2. {
  3.         function s($array_s);
  4. }
  5. abstract class A
  6. {
  7.         protected $s = array();
  8. }
  9.  
  10. class Free_sit extends A implements S
  11. {
  12.         //protected $s = array(); from parent class
  13.         function _construct($array_s)
  14.                 {
  15.                 $this->$s = $array_s;
  16.                 $this-> s($this->$s);
  17.                 }
  18.         function s($sts)
  19.         {
  20.                 echo $sts[0];
  21.         }
  22. }
  23. $mas = array('element');
  24. new Free_sit($mas);
  25.  

ничего не показывает. конструктор не работает что ли? или я что-то не так сделал


Отредактировано модератором: Мелкий, 18 Июня, 2013 - 20:47:57
поправил подсветку
 
 Top
Мелкий Супермодератор
Отправлено: 18 Июня, 2013 - 20:48:28
Post Id



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


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


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




souta пишет:
function _construct

Два подчёркивания.

Это если предположить, что fatal error у вас из-за опечатки при копировании.


-----
PostgreSQL DBA
 
 Top
DelphinPRO
Отправлено: 18 Июня, 2013 - 20:50:37
Post Id



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


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


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




ну во-первых, это вам ничего не говорит?
Цитата:
<br />
<b>Fatal error</b>: Interface 'S' not found in <b>W:\domains\test.local\PHP.php</b> on line <b>24</b><br />


во-вторых: __construct - уже сказали

и в третьих: $this->$s = $array_s; - что вы хотели этим сделать?

корректный пример:
PHP:
скопировать код в буфер обмена
  1. interface C
  2. {
  3.     function s($array_s);
  4. }
  5.  
  6. abstract class A
  7. {
  8.     protected $s = array();
  9. }
  10.  
  11. class Free_sit extends A implements C
  12. {
  13.     //protected $s = array(); from parent class
  14.  
  15.     function __construct($array_s)
  16.     {
  17.         $this->s = $array_s;
  18.         $this->s($this->s);
  19.     }
  20.  
  21.     function s($sts)
  22.     {
  23.         echo $sts[0];
  24.     }
  25. }
  26.  
  27. $mas = array('element');
  28. new Free_sit($mas);
  29.  

(Добавление)
DelphinPRO пишет:
и в третьих: $this->$s = $array_s; - что вы хотели этим сделать?

O_o
этот пых меня доконает... почему оно работает?

(Отредактировано автором: 18 Июня, 2013 - 20:53:13)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
souta
Отправлено: 18 Июня, 2013 - 20:59:19
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Окт. 2012  


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

[+]


дада С и S я просто когда копировал сюда, имена менял, поэтому так получилось извиняюсь)
(Добавление)
CODE (text):
скопировать код в буфер обмена
  1. interface С
  2. {
  3.         function s($array_s);
  4. }
  5. abstract class A
  6. {
  7.         protected $s = array();
  8. }
  9.  
  10. class Free_sit extends A implements С
  11. {
  12.         //protected $s = array(); from parent class
  13.         function __construct($array_s)
  14.                 {
  15.                 $this->s = $array_s;
  16.                 $this-> s($this->s);
  17.                 }
  18.         function s($sts)
  19.         {
  20.                 echo $sts[0];
  21.         }
  22. }
  23. $mas = array('element');
  24. new Free_sit($mas);
  25.  


вот я нашел ошибку))) перед кострак два подчеркивания , а у меня 1 было. и еще было $this->$s = $array_s; $this-> s($this->$s);, а нужно $this->s = $array_s; $this-> s($this->s); спасибо всем))
 
 Top
DeepVarvar Супермодератор
Отправлено: 18 Июня, 2013 - 22:30:38
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




DelphinPRO пишет:
почему оно работает?
Привет сеттеру и геттеру (чуку и геку):
PHP:
скопировать код в буфер обмена
  1. $obj = new stdClass;
  2. foreach (array("foo", "baz", "bar") as $n) {
  3.   $obj->$n = uniqid();
  4. }
  5. var_dump($obj);
 
 Top
DelphinPRO
Отправлено: 18 Июня, 2013 - 23:48:34
Post Id



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


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


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




DeepVarvar, твой пример мне понятен.
я не понимаю почему оно здесь работает
PHP:
скопировать код в буфер обмена
  1. function _construct($array_s)
  2. {
  3.     $this->$s = $array_s; // в этом месте $s - неопределена же?
  4.     $this-> s($this->$s);
  5. }



-------
UPD
а, всё, прошу прощения, нашел свою оплошность Улыбка
Привык что phpstorm сам сохраняет файлы при потере фокуса, а notepad++ так не умеет...

(Отредактировано автором: 18 Июня, 2013 - 23:50:56)



-----
Чем больше узнаю, тем больше я не знаю.
 
 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