2015-06-08 3 views
2

Im обучения PHP OOP понемногу по себе ...

Я не могу получить эту работу так, как я хочу, им triying сделать это:

http://localhost/test/class.php?action=delete

public $action; 
public function __construct() 
{ 
     $this->action = isset($_GET['action']) ? $_GET['action'] : null;    
     $this->db = new Db(); 
     $this->Select($action); 
} 

private function Select($action) 
{ 
    if ($action = 'delete') 
    { 
      echo "Here"; 
    } 

} 

} 

Я думаю, что это довольно просто .. но я не могу решить проблему самостоятельно. Экран просто пуст без ошибок и ничего не отображает. Так что я не могу найти решение ...

Спасибо

+0

Если вы получаете белый экран, включить подробный отчет об ошибках. 'Error_reporting (E_ALL); ini_set ('display_errors', 1) '- очевидно, не в вашей рабочей среде ... –

+0

О, боже, это понятно. Спасибо – Uxio90

ответ

2

Вы можете передать $_GET в конструктор из вашего класса:

Class GetClass { 
    public $action; 
    public function __construct($get){ 
     $this->action = isset($get['action']) ? $get['action'] : null; 
     $this->db = new Db(); 
     $this->Select($this->action); 
    } 

    private function Select($action){ 
    if (strtolower($action) == 'delete') { 
     echo "Here"; 
    } 
    } 

} 

$getClass = new GetClass($_GET); 
+0

'if ($ action = 'delete') {' вам нужно double '=' здесь ... Я бы также сделал его постоянным, то есть 'strtolower' или' strtoupper'. –

+0

@ ʰᵈˑ Thx не заметил ни одного '=' – Daan

+0

Thx, the == не был ошибкой, это было, пока я писал все быстро ... – Uxio90

1

Просто измените линию.

$this->Select($action); 

в

$this->Select($this->action); 

и вы также назначение не сравнивая значения в пределах вашего if состояния

if ($action = 'delete') //assignment operator = 

должен быть

if ($action == 'delete') //comparison operator == 

Псевдопеременная $ this доступна, когда метод вызывается из контекста объекта. $ это ссылка на вызывающий объект (обычно объект, к которому принадлежит этот метод, но, возможно, другой объект, если метод вызван статически из контекста вторичного объекта).

Check Docs

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