Как я могу вызвать нестатический метод в статический метод в php?

0

Я совершенно новый для PHP. Я сделал что-то такое:

 class Foo  
 {         
    @BeforeSuite
    public static function prePare()
   {           
       $obj = new Foo;
       $obj->iVisit("https://google.com");
     }
  }

 public function iVisit($url)
   {
      if ($url != null) {
            $this -> getSession() -> visit($url);
         }
      else {
           throw new PendingException();
         }
   }
}

Но это бросает эту ошибку:

PHP Неустранимая ошибка: вызов функции-члена getSession() для объекта без объекта

Отредактировано:

Мой сценарий - загрузить URL-адрес, прежде чем запускать другие тестовые примеры. Поэтому я выбираю загрузить URL-адрес в функцию @beforesuite, но в режиме behash @beforesuite является статической функцией. Мне пришлось вызвать метод iVisit из статической функции.

Есть ли другое решение для этой проблемы?

  • 0
    Покажите нам код, где вы используете этот класс.
  • 0
    Я не вижу метода getSession () в вашем классе, не говоря уже о том, что iVisit не находится внутри класса Foo. И почему, во имя Бога, ты создаешь свой класс внутри себя? @ Ленап, void вы говорите ... Java-часть SO именно так === ^
Показать ещё 1 комментарий
Теги:
behat

1 ответ

2

Это не концепция php, а просто концепция программирования.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню