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]   

> Без описания
imedia
Отправлено: 01 Ноября, 2015 - 13:54:05
Post Id



Частый гость


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


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




Есть модель
PHP:
скопировать код в буфер обмена
  1.  
  2. class User {
  3. public function __construct()
  4. {
  5. print($this->statement());     
  6.  
  7. }
  8.  
  9.  


и сам класс
PHP:
скопировать код в буфер обмена
  1.  
  2. class Main {
  3.  
  4.         public $statment='preview';
  5.  
  6.         public function __construct()
  7.         {      
  8.         $this->statement='pre2';
  9.         print('main_construct');
  10.     }
  11.        
  12.         function state(){
  13.         $state_var =  'pre3';
  14.         }
  15.  


и есть класс из которого происходит обращение к модели
PHP:
скопировать код в буфер обмена
  1.  
  2. class UsersController extends Main {  
  3.  
  4.         public function __construct()
  5.         {
  6.         parent:: __construct();
  7.         $this->user=new User();
  8.         print($this->user->statement());
  9.         print($this->user->state->state_var());
  10.         }
  11.  

Fatal error: Call to undefined method User::statement() in /var/www/clients/client1/web28/w eb/protected/models/User.php on line 8 , подключаются классы в бутстрапе
PHP:
скопировать код в буфер обмена
  1.  
  2. require __DIR__ . '/Main.php';
  3. require __DIR__ . '/models/User.php';
  4.  

Вопрос как увидеть эти переменные обращаясь к модели из класса UsersController
думаю не стоит расширять модель ,достаточно что расширен класс обращающийся к модели.

(Отредактировано автором: 01 Ноября, 2015 - 14:17:29)

 
 Top
SAD
Отправлено: 01 Ноября, 2015 - 16:41:47
Post Id



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


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




public $statement='preview'
 
 Top
Viper
Отправлено: 01 Ноября, 2015 - 17:02:57
Post Id



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


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


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




imedia выбросьте свой блокнот, или в каком вы там говне свой код пишете. Возьмите нормальный IDE для php (netbeans, phpstorm).


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
DelphinPRO
Отправлено: 01 Ноября, 2015 - 17:05:29
Post Id



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


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


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




imedia пишет:
Call to undefined method User::statement()


Даже если закрыть глаза на все остальные косяки, то откуда должен взяться метод statement(), если не объявлен вообще ни в одном классе???


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