За последние 24 часа нас посетили 20859 программистов и 1125 роботов. Сейчас ищут 411 программистов ...

Получить имя объекта

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

Метки:
  1. Stang8

    Stang8 Новичок

    С нами с:
    23 июн 2020
    Сообщения:
    18
    Симпатии:
    0
    Может кому покажется странным, но мне нужно в классе получить имя объекта. Ну или посоветуйте, а то в голову ничего не приходит.
    Суть в чем, я создаю множество <fieldset> на странице, каждый <fieldset> это объект. Но при создании мне нужно каждому указывать свое имя. Как по мне, так нормально было имя задавать по имени объекта. Можно, конечно, при создании объекта дополнительно ручками указывать и имя объекта, но как-то это грустно.
    Как получить имя класса я нашел, а вот имя объекта? Или это вызовет ошибку, так как в теории класс не знает еще про не созданный объект?
    PHP:
    1. public function outQuestion() {
    2.         $radio = 0;
    3.         $name = ""; // здесь бы я хотел получить имя объекта
    4.        
    5.         echo "<fieldset>";
    6.         echo "<legend><b>".$this->quest."</b></legend>";
    7.         foreach ($this->answer as &$value) {
    8.             echo "<label><input type=\"radio\" name=\"".$name."\" value=\"".$radio."\">".$value."</label><br>";
    9.             $radio = $radio + 1;
    10.         }
    11.         echo "</fieldset>";
    12.  
    13.     }
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.734
    Симпатии:
    1.315
    Адрес:
    Лень
  3. Stang8

    Stang8 Новичок

    С нами с:
    23 июн 2020
    Сообщения:
    18
    Симпатии:
    0
    Мне нужно не имя класса, а имя объекта. Класс у меня один, а вот объектов много.
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.816
    Симпатии:
    735
    Адрес:
    Татарстан
    какого объекта то?
     
  5. Stang8

    Stang8 Новичок

    С нами с:
    23 июн 2020
    Сообщения:
    18
    Симпатии:
    0
    Объекта, которого я создаю на основании своего класса.
    $quest1 = new Questions($text); - Вот мне внутри класса Questions нужно получить имя объекта $quest1
     
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.816
    Симпатии:
    735
    Адрес:
    Татарстан
    Зачем?
     
  7. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    Если появилось желание, чтобы объект знал, какой переменной его присвоили - значит что-то идёт не так...
     
  8. Artur_hopf

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

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    PHP:
    1. $quest1 = new Questions($text, 'quest1');
    PHP:
    1. class Questions{
    2.     public $name;
    3.     public $text;
    4.  
    5.    function __construct($text, $name) {
    6.        $this->name = $name;
    7.        $this->text = $text;
    8.    }
    9.  
    10.    public function outQuestion() {
    11.       $radio = 0;
    12.       $name = $this->name;
    13.    }
    14. }
     
  9. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.816
    Симпатии:
    735
    Адрес:
    Татарстан
    А главное - нахрена это?
     
  10. Stang8

    Stang8 Новичок

    С нами с:
    23 июн 2020
    Сообщения:
    18
    Симпатии:
    0
    У меня будет много <fieldset> на основании одного класса. Сейчас у меня все они имеют одно имя, а мне нужны разные, причем мне потом к каждому надо будет обращаться, чтобы добавлять функционал уже на javaScript.
    Не знаю, может есть какой-то счетчик, чтобы наращивал значение при создании каждого объекта?
    --- Добавлено ---
    А если у меня сотня объектов будет? В БД какой-то автоинкримент для поля делать, чтобы все уникальные были?
     
  11. Artur_hopf

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

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    @Stang8 короче вы хуйню делаете, я ушел.
     
    twim32 и MouseZver нравится это.
  12. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.816
    Симпатии:
    735
    Адрес:
    Татарстан
    Отсутствует полностью понимание ООП.
     
    MouseZver нравится это.
  13. Artur_hopf

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

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    @Stang8 на js можно написать:
    Код (Javascript):
    1. let fieldset = document.querySelectorAll('fieldset');
    и он все их найдет без каких то там уникальных имен.
     
  14. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    @Stang8, или вот, например: How to get values from html input array using JavaScript.
    Это к тому, что значение атрибутов name поля ввода можно написать так, чтобы данные передавались как массив. А в качестве атрибута data-id, например, можно передавать id записи из базы данных, соответствующей определенной сущности (ну или в качестве индекса массива)
     
  15. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    Ну в бд почти в каждой таблице есть автоинкремент. А получить имя переменной нельзя. Тем более, что в php самих объектов в переменных нету, есть только ссылки на объекты