На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА
Прежде чем задать вопрос, зайдите в раздел FAQ, возможно там уже есть ответ на него.
Если вы хотите вставить код в сообщение, то пожалуйста выделяйте его тегом [code=dfp] ... [/сode].
Для этого используйте кнопку [code=dfp] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Delphi for PHP.
Модераторы: ViktorXP, vicis
  
> Класс внутри класса
    2 модуля:
    1 MainPage.php
    содержит класс главной формы
    класс главной формы должен содержать член-свойство юзер - экземпляр класса TUser
    2 User.php
    содержит класс TUser


    Отбрасывая шелуху, оставляю самый сок:
    MainPage.php

    ExpandedWrap disabled
      <?php
      require_once("User.php");
      ...
      class pgMainForm extends Page
      {
          public $User = TUser;
       
          function MainMenuClick($sender, $params)
          {
           if ($params['tag']==1)
            {
      строка №23         $this->User->NewUser();
            }
       
          }
      }
      ...
      $pgMainForm->show();
       
       
       
      ?>

    User.php
    ExpandedWrap disabled
      <?php
      class TUser
      {
        private $username="";
        private $logged=false;
        private $IP;
       
        public function NewUser() {
          echo "new user";
        }
       
      }
      ?>



    Ошибка
    Fatal error: Call to a member function NewUser() on a non-object in C:\xampp\h...Main.php on line 23


    Итак, как правильно агрегировать классы?
    Вообще хорошо, если бы при этом работал еще и код комплит).

    Спасибо.
    Пс: я начинающий в пхп и буду добивать именно эту среду, т.к. пристращен к delphi с версии 7
    Сообщение отредактировано: ViktorXP -
      Цитата sunnmas @
      ExpandedWrap disabled
        public $User = TUser;

      Это что и это откуда?
      Ну как минимум нужно хоть немного изучить php.
      Цитата sunnmas @
      Ошибка
      Fatal error: Call to a member function NewUser() on a non-object in C:\xampp\h...Main.php on line 23

      Ибо кто будет создавать объект?
        если я пишу $User = new TUser;
        то выходит такая ошибка, в примере выше он хотя бы главную форму показывает

        Parse error: syntax error, unexpected T_NEW in C:\xampp\htdocs\bubu\Main.php on line 16
          1)
          Цитата sunnmas @
          2 User.php

          файл точно с большой буквы ?
          2)
          сделай сначала, что бы всё в одном файле работало

          Добавлено
          и кстати, нестыковка в именах файлов
          Цитата sunnmas @
          2 модуля:
          1 MainPage.php

          и
          Цитата sunnmas @
          Parse error: syntax error, unexpected T_NEW in C:\xampp\htdocs\bubu\Main.php on line 16
            sunnmas, вот тебе два скриптика для размишления.
            ExpandedWrap disabled
              <?php
               
              class test
              {
                function proc() { echo 'test_proc'; }
              }
               
              class main
              {
                var $var_1 = test;
              }
               
              $s = new  main();
              var_export($s);
               
              ?>

            ExpandedWrap disabled
              <?php
               
              class test
              {
                function proc() { echo 'test_proc'; }
              }
               
              class main
              {
                var $var_1;
                function main()
                {
                  $this->var_1 = new test();
                }
              }
               
              $s = new  main();
              var_export($s);
               
              ?>
            поизучай результат работы скриптов.
            и мой совет прочесть хотя бы несколько самых тонких статей по пыху.
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0449 ]   [ 15 queries used ]   [ Generated: 24.04.24, 15:57 GMT ]