передать переменную в класс в шаблоне MVC - PullRequest
0 голосов
/ 03 июня 2018

Я использую шаблон MVC в PHP.Шаблон MVC ограничивает вас вызовом методов внутри классов.Насколько я понимаю, я не могу работать вне рамок класса.

Как тогда передать переменную в функцию?единственное место, которое я нашел, я могу объявить переменную внутри функции.Это делает функцию static и не может использоваться повторно!

Пример:

class usersModel {
    function q(){
        $sql = "SELECT * FROM users WHERE fname='eli'";
        $result1 = $this->conn->query($sql);
        $result2 = $result1->fetch_assoc();
        $fname = ($result2['fname']);
        return $fname;
    }
}

Вперед, когда я создаю объект класса в другом классе:

$model = usersModel();
$result = $model->q();

Где бы я объявил переменную $sql, чтобы мне не нужно было включать ее в функцию?

Ответы [ 2 ]

0 голосов
/ 03 июня 2018

Привет всем и спасибо за ваш вклад!

Это ответ, который я искал - я должен исключить переменную как константу вне класса, чтобы метод в классе был в состояниичтобы достичь этого!

define("SQL","SELECT * FROM users WHERE fname='eli'");
class usersModel {
function q(){

    global $result1;
    $result1 = $this->conn->query(SQL);
    $result2 = $result1->fetch_assoc();
    $fname = ($result2['fname']);
    return $fname;
}
0 голосов
/ 03 июня 2018

Вы должны объявить функцию public, тогда вы можете получить доступ к методу вне класса и передать sql param методу.

 class usersModel {
    public function q($sql){ 
          $result1 = $this->conn->query($sql);
          $result2 = $result1->fetch_assoc(); 
          $fname = ($result2['fname']); 
          return $fname; 
     }

 }

$sql = "SELECT * FROM users WHERE fname='eli'"; 

$user = new usersModel();
$user->q($sql);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...