2015-06-03 2 views
0

Когда я вызываю свою страницу example.com/do-something, я хочу, чтобы мой код в __cunstruct() выполнялся автоматически.Автоматический запуск метода класса

<?php 
class Ajax { 
    // POST Manager 
    public function __construct() { 
     require_once('../../../wp-load.php'); 
     require_once('intern/functions.php'); 

     $customers = new Customers; 

     // Save a comment 
     if (isset($_POST['comment']) && $_POST['comment'] === 'save') { 
      $this::save_comment(); 
     } 

     // User has been called 
     if ($_POST['form_sent'] === 'yes' && (isset($_POST['id']))) { 
      $this::mark_user_as_complete(); 
     } 

     // Load a dynamic table for 'closed' customers 
     if (isset($_POST['customer_status']) && $_POST['customer_status'] === 'abgeschlossen') { 
      $this::get_closed_customers(); 
     } 

     // Load a dynamic table for 'open' customers 
     if (isset($_POST['customer_status']) && $_POST['customer_status'] === 'offen') { 
      $this::get_open_customers(); 
     } 

     // Mark the user as 'open' and remove him from the 'closed' list 
     if ($_POST['customer_uncalled'] === 'yes' && isset($_POST['customer_called_id'])) { 
      $this::mark_user_as_open(); 
     } 

     // Show search results 
     if (isset($_POST['searchValue']) && !empty($_POST['searchValue'])) { 
      $this::show_search_results(); 
     } 
    } 
} 

Я думал __construct() бы сделать это, но она ничего не выводит. Как я могу заставить его работать автоматически?

+1

Не уверен, что я понимаю вопрос. Если вы хотите, чтобы __construct выполнялся, вам необходимо создать экземпляр класса. То есть используйте 'new Ajax()' где-то, где вы этого хотите. –

+0

Кроме того, почему вы используете такие вещи, как '$ this ::'. У вас есть экземпляр, но вы вызываете методы статически. Вероятно, вы хотите '$ this->', а не '$ this ::', или, возможно, 'self ::', но это зависит от остальной части класса. –

+0

@JonStirling Да, я знаю, но я подумал, что, возможно, будет такой способ, поэтому __construct инициализируется. –

ответ

2

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

Где-то в 'do-something.php' вам нужен $variable_name = new Ajax(); для вызываемого конструктора.

+0

Если нет другого способа запуска метода без его инициализации, то это отвечает на мой вопрос. Спасибо. –

Смежные вопросы