За последние 24 часа нас посетили 17430 программистов и 1605 роботов. Сейчас ищут 968 программистов ...

Как передать данные с Класс

Тема в разделе "PHP для новичков", создана пользователем biryukovm, 2 янв 2020.

  1. biryukovm

    biryukovm Активный пользователь

    С нами с:
    15 окт 2015
    Сообщения:
    54
    Симпатии:
    1
    Здарова всем.

    Подскажите ответ на такой вопрос.
    Я создал php файл и туда засунул массивом параметры

    Теперь я пытаюсь эти параметры использовать в классе где у меня подключается БД но при указании значения как массива показывает ошибку

    Вот примеры моих ошибок
    PHP:
    1. class SQL{
    2.  
    3.     private $host;
    4.     private $user;
    5.     private $pass;
    6.     private $dbname;
    7.     private $charset;
    8.  
    9.     public $error;
    10.  
    11.     $this->host = $param['db_host'];
    12.     $this->user = $param['db_user'];
    13.     $this->pass = $param['db_pass'];
    14.     $this->dbname = $param['db_dbname'];
    15.     $this->charset = $param['db_charset'];

    Или так тоже ошибка
    PHP:
    1. class SQL{
    2.  
    3.     private $host = $param['db_host'];
    4.     private $user= $param['db_user'];
    5.     private $pass= $param['db_pass'];
    6.     private $dbname= $param['db_dbname'];
    7.     private $charset= $param['db_charset'];
    8.  
    9.     public $error;
    10.  
    Подскажите как правильно передать параметры.


    Был еще такой варинат но я в нем не уверен как он безопасен.
    PHP:
    1. define("DB_HOST", "localhost");
    2. class SQL{
    3.  
    4.     private $host = DB_HOST;
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.853
    Симпатии:
    748
    Адрес:
    Татарстан
    в каком это месте вы передали $param ? Или вам просто этого захотелось?
    вам нужно сделать конструктор, и парпметры явно передавать в класс через конструктор
     
  3. biryukovm

    biryukovm Активный пользователь

    С нами с:
    15 окт 2015
    Сообщения:
    54
    Симпатии:
    1
    Переменную я задаю в начале файла
    $param = array(****)

    а можно пример
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.788
    Симпатии:
    1.328
    Адрес:
    Лень
    а можно пример как обучаешься в направлении ООП, как работать с конструкторами и с чего начинать ?

    Можно не отвечать на автологику.
     
  5. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Вот как-то так оно должно выглядеть.
    PHP:
    1. class SQL
    2. {
    3.     private $host;
    4.     private $user;
    5.     private $pass;
    6.     private $dbname;
    7.     private $charset;
    8.     public $error;
    9.  
    10.     public function __construct($param)
    11.     {
    12.         $this->host = $param['db_host'];
    13.         $this->user = $param['db_user'];
    14.         $this->pass = $param['db_pass'];
    15.         $this->dbname = $param['db_dbname'];
    16.         $this->charset = $param['db_charset'];
    17.         $this->wtf();
    18.     }
    19.     private function wtf()
    20.     {
    21.         $this->error = 'WTF!?';
    22.     }
    23. }
    24. $parameters = ['db_host'=>'localhost', 'db_user'=>'root', 'db_pass'=>'123', 'db_dbname'=>'test', 'db_charset'=>'utf8'];
    25. $sqlObject = new SQL($parameters);
    26. echo $sqlObject->error;
    Но удивительно, как ты к тому что ты показал, дошел.
    Даже просто банально, спросить в поисковике - "Как передать значения в ПХП класс" и в выдаче яндекса, кроме именно вот этого топика :D, выше есть еще другие причем с подобным вопросом как раз про БД.

    Если ты изучаешь ПХП попробуй сначала сам разобраться в ситуации, просто задав интересующий вопрос в поиск.
     
    #5 AlexandrS, 3 янв 2020
    Последнее редактирование: 3 янв 2020