Как передать массив в качестве параметра в конструкторе класса в PHP

#php #constructor

Вопрос:

Я пытаюсь передать эти параметры в конструктор моего класса:

  1. $tableName : Имя таблицы базы данных.
  2. $id : Имя поля идентификатора моей таблицы базы данных.
  3. $tableFields : Имена полей моей таблицы базы данных.

Параметры 1 и 2 всегда будут равны только 1, но параметр 3 является переменным, может быть, 2, может быть, 4 или, может быть, 15.

Итак, мне нужно сохранить его в массив, но я не уверен, как это сделать.

Ребята, вы можете помочь мне понять это?

 <?php
    class GenerateCrud {
    
        // Properties.
        
            public $tableName;
            public $id;
            public $tableFields = array();
    
        // Constructor.
        
            function __construct($tableName, $id, $tableFields){
                $this->tableName = $tableName;
                $this->id = $id;
                $this->tableFields[] = $tableFields;
            }
    }
    
    $myObject = new GenerateCrud('users_test', 'id', 'field1', 'field2', 'field3', 'field4');
?>
 

Комментарии:

1. $myObject = new GenerateCrud('users_test', 'id', ['field1', 'field2', 'field3', 'field4']);

2. И затем $this->tableFields = $tableFields;

3. Вы также можете сделать function __construct($tableName, $id, ...$tableFields) так, чтобы любые параметры, выходящие за рамки второго, помещались в массив.

4. Хорошо. Вы понимаете, почему это сработало?

5. Да! Я на работе, и мне интересно учиться и становиться все лучше и лучше с каждым днем! Спасибо, вам тоже счастливого кодирования!

Ответ №1:

Добавить:

 $this->tableFields = $tableFields;

 

И:

 $myObject = new GenerateCrud('users_test', 'id', ['field1', 'field2', 'field3', 'field4']);