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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
zzzzzz
Отправлено: 19 Сентября, 2013 - 20:37:31
Post Id


Гость


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


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




Здравствуйте.
PHP:
скопировать код в буфер обмена
  1.  
  2. class Add {
  3.        
  4.     function news($mysqli) {
  5.  
  6.         function view_form($mysqli) {
  7.  
  8.           print 2;
  9.         }
  10.        
  11.         function add_in_db($mysqli) {
  12.  
  13.             print 1;
  14.         }
  15.  
  16.     }
  17. }

Вопрос первый. Как называется модель при которой метод внутри метода? Есть ли у этого профессиональное обозначение? Или так и говорят метод внутри метода

Вопрос второй.
Почему такой вызов методов выдает ошибку Fatal error: Cannot redeclare view_form() (previously declared in...
PHP:
скопировать код в буфер обмена
  1. $add->news($mysqli)<-view_form($mysqli);
  2. $add->news($mysqli)<-add_in_db($mysqli);

если вызывать по одному то ошибки нет

и почему так
PHP:
скопировать код в буфер обмена
  1. $add->news($mysqli)<-view_form($mysqli);

а не так
PHP:
скопировать код в буфер обмена
  1. $add->news($mysqli)->view_form($mysqli);


Заранее благодарю

(Отредактировано автором: 19 Сентября, 2013 - 20:38:19)

 
 Top
OrmaJever Модератор
Отправлено: 19 Сентября, 2013 - 20:56:16
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




zzzzzz пишет:
$add->news($mysqli)<-view_form($mysqli)

ого, видимо я много не знаю в этой жизни Не понял


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
zzzzzz
Отправлено: 19 Сентября, 2013 - 20:59:37
Post Id


Гость


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


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




Это вы меня подкололи?
 
 Top
OrmaJever Модератор
Отправлено: 19 Сентября, 2013 - 21:17:31
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




нет, я сам удивился оператору <- и что вобще можно создавать метод в методе. Самому интересно мнение других Растерялся


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
zzzzzz
Отправлено: 19 Сентября, 2013 - 21:20:05
Post Id


Гость


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


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




кстати так тоже работает
PHP:
скопировать код в буфер обмена
  1. $add->news($mysqli)-view_form($mysqli);
 
 Top
tuareg
Отправлено: 19 Сентября, 2013 - 21:41:53
Post Id


Участник


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. class Add {
  3.        
  4.     function news($mysqli) {
  5.  
  6.         function view_form($mysqli) {
  7.  
  8.           print 2;
  9.         }
  10.        
  11.         function add_in_db($mysqli) {
  12.  
  13.             print 1;
  14.         }
  15.         return $this;
  16.  
  17.     }
  18. }
  19.  

Может так?
P.s А точно метод получается, а не функция?
 
 Top
avtor.fox
Отправлено: 19 Сентября, 2013 - 21:43:46
Post Id



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


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


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




tuareg пишет:
P.s А точно метод получается, а не функция?

Там функции. Объявляются в данном случае при вызове A->news()
 
 Top
zzzzzz
Отправлено: 19 Сентября, 2013 - 21:47:37
Post Id


Гость


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


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




return не помог

(Отредактировано автором: 19 Сентября, 2013 - 21:48:04)

 
 Top
LIME
Отправлено: 19 Сентября, 2013 - 21:48:05
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




а вот эта <- означает меньше минус
ну и минус во втором случае
и вложенных фций нет в пыхе...причину выше указали(или следствие)
zzzzzz я восхищен))
 
 Top
armancho7777777 Супермодератор
Отправлено: 19 Сентября, 2013 - 21:50:28
Post Id



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


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


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




Уже ответили...

(Отредактировано автором: 19 Сентября, 2013 - 21:51:54)

 
 Top
zzzzzz
Отправлено: 19 Сентября, 2013 - 21:51:28
Post Id


Гость


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


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




я не смог правильно интерпретировать сообщение об ошибке поэтому написал сюда
(Добавление)
Всем спасибо

(Отредактировано автором: 19 Сентября, 2013 - 21:53:05)

 
 Top
armancho7777777 Супермодератор
Отправлено: 19 Сентября, 2013 - 21:54:14
Post Id



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


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


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




zzzzzz, Да конечно можно:
PHP:
скопировать код в буфер обмена
  1.  
  2. function foo()
  3. {
  4.         if(!function_exists('bar'))
  5.         {
  6.                 function bar()
  7.                 {
  8.                 }
  9.         }
  10. }
  11.  

Но это - говнокод.
(Добавление)
zzzzzz пишет:
я не смог правильно интерпретировать сообщение

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

(Отредактировано автором: 19 Сентября, 2013 - 21:54:33)

 
 Top
zzzzzz
Отправлено: 19 Сентября, 2013 - 22:21:28
Post Id


Гость


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


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




Ну зачем вы обижаете, дауна из меня делаете
$add->news($mysqli)<-view_form($mysqli);
$add->news($mysqli)<-add_in_db($mysqli);

Сообщение:
Не можете переопределить view_form() ранее объявленный

Так как функция view_form сработала а вторая функция add_in_db нет (но блин я еще не знал что это функции) в сообщении говорится про первую функцию которая опять же напомню выполнилась нормально.

Так как мне сообщение об ошибке должно помочь с учетом что вызвав add_in_db я оказывается переопределяю первую?

Если после многолетних медитаций вы сразу понялb в чем тут фишка то поверьте таким как я это не явно видно.

Цитата:
А надо было просто перевести в гугл-переводчике.
 
 Top
LIME
Отправлено: 19 Сентября, 2013 - 22:30:35
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




zzzzzz пишет:
Ну зачем вы обижаете, дауна из меня делаете
это не мы...мы не виноваты))
zzzzzz пишет:
$add->news($mysqli)<-view_form($mysqli);
LIME пишет:
а вот эта <- означает меньше минус
 
 Top
OrmaJever Модератор
Отправлено: 19 Сентября, 2013 - 22:32:44
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




хух, прочитав коменты всё понял.
view_form и add_in_db просто функции, но они объвляются не сразу а когда вызывается Add::news(), отсюда и ошибка переопределения (после двух вызовов Add::news()), ну а с оператором всё ясно, он интерпретируется как $add->news($mysqli) < (-view_form($mysqli)).
Хух я думал я совсем от жизни отстал Закатив глазки


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB