CodeIgniter: неопределенная переменная get из __construct () - PullRequest
0 голосов
/ 01 июня 2019

Я работаю над проектом.Вот мой код:

Контроллер

public function __construct(){
  parent::__construct();

  $x = $this->input->get('x');
  $this->model->val = $this->model->checkval($x);
}

public function save(){
  // some code to input to database
  echo $this->model->val;
}

Модель

public function checkval($x){
  switch($x){
    case 1 : $y = 10; break;
    case 2 : $y = 20; break;
    case 3 : $y = 30; break;
  }
  return $y;
}

(это простая версия)

Сообщение: неопределенная переменная: y

Имя файла: models / Test_model.php

Я хочу получить доступ к save(), и он обработает $this->model->val ($this->model->val было объявлено как public $val в модели).$this->model->val - получить из $this->model->checkval($x), где $x - получить из метода GET.Но это показывает эту ошибку.Что я сделал не так?

1 Ответ

2 голосов
/ 01 июня 2019

Если $x не равно 1, 2 или 3, оно никогда не определяется.Чтобы предотвратить это, вам нужно значение по умолчанию для $y, которое затем можно изменить, если $x соответствует одному из этих значений:

public function checkval($x){
  $y = 0; // This can be false or whatever other value makes sense for your business logic
  switch($x){
    case 1 : $y = 10; break;
    case 2 : $y = 20; break;
    case 3 : $y = 30; break;
  }
  return $y;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...