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. imedia - 01 Ноября, 2015 - 13:54:05 - перейти к сообщению
Есть модель
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
думаю не стоит расширять модель ,достаточно что расширен класс обращающийся к модели.
2. SAD - 01 Ноября, 2015 - 16:41:47 - перейти к сообщению
public $statement='preview'
3. Viper - 01 Ноября, 2015 - 17:02:57 - перейти к сообщению
imedia выбросьте свой блокнот, или в каком вы там говне свой код пишете. Возьмите нормальный IDE для php (netbeans, phpstorm).
4. DelphinPRO - 01 Ноября, 2015 - 17:05:29 - перейти к сообщению
imedia пишет:
Call to undefined method User::statement()


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

 

Powered by ExBB FM 1.0 RC1