Как получить доступ к функции из класса, вызываемой из функции, не относящейся к классу? - PullRequest
0 голосов
/ 03 сентября 2018

Как реализовать такую ​​функциональность в php?

Я новичок в концепции ООП, пожалуйста, наведите меня на правильный путь.

class Sample{
  function getDetails($arg){
    return $arg;
  }
}

function getValue($value){
    $content= new Sample();
    $content->getDetails($value);
}

Ответы [ 4 ]

0 голосов
/ 03 сентября 2018

То, что вы пытаетесь сделать, это вызов метода (функции, определенной в классе) из обычной функции (функции, не определенной в классе).

Может быть реализовано как статический или нестатический метод.

Статический метод реализация будет выглядеть следующим образом:

class Sample{
  public static function getDetails($arg){
    return $arg;
  }
}

function getValue($value){
      return Sample::getDetails($value);
}

Нестатический (экземпляр) метод реализация будет выглядеть следующим образом:

class Sample{
   public function getDetails($arg){
    return $arg;
  }
}

function getValue($value){
      $content= new Sample();
      return $content->getDetails($value);
}

Надеюсь, это полезно.

0 голосов
/ 03 сентября 2018

Вы не можете получить к нему доступ, потому что это не «открытый» метод, т. Е. Это не публичный метод. Контроль доступа также является частью php.

   class Sample{
      public function getDetails($arg){
        return $arg;
      }
    }
    function getValue($value){
          $content= new Sample();
          $content->getDetails($value);
    }
0 голосов
/ 03 сентября 2018

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

   class Sample{
      function getDetails($arg){
        return $arg;
      }
    }
    function getValue($value){
          $content= new Sample();
          $result = $content->getDetails($value);
          return $result;
    }

echo getValue( 'test' );
0 голосов
/ 03 сентября 2018

Вы не можете использовать $ this her, потому что функция getValue () находится вне класса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...