У меня есть кусок кода, который в основном создает экземпляр class < /em> on-fly: < /p>
$class = 'user';
return new $class;
< /code>
Задача состоит в том, что у меня есть аргументы конструктора в формате массива < /em>, и они, очевидно, отличаются от класса к классу, поэтому нет никакого шаблона, что я могу сделать все возможное. Здесь есть некоторые обходные пути, чтобы извлечь эти аргументы из массива и пропустить их так же, как это: < /p>
$args = array( 'one', 'two' );
// some code to generate $arg1, $arg2, etc.
return new $class( $arg1, $arg2 );
< /code>
Однако я действительно предпочитаю делать это умнее. Насколько я вижу, нет никакого способа использовать Call_user_func и Call_user_func_array, если я не забуду о конструкторе < /em> и инициализации его после экземпляра.return magic_func( 'className', array('one', 'two') );
Подробнее здесь: https://stackoverflow.com/questions/220 ... t-the-same
Создайте класс на основе строки и одновременно передайте аргументы конструктора ⇐ Php
Кемеровские программисты php общаются здесь
1759334956
Anonymous
У меня есть кусок кода, который в основном создает экземпляр class < /em> on-fly: < /p>
$class = 'user';
return new $class;
< /code>
Задача состоит в том, что у меня есть аргументы конструктора в формате массива < /em>, и они, очевидно, отличаются от класса к классу, поэтому нет никакого шаблона, что я могу сделать все возможное. Здесь есть некоторые обходные пути, чтобы извлечь эти аргументы из массива и пропустить их так же, как это: < /p>
$args = array( 'one', 'two' );
// some code to generate $arg1, $arg2, etc.
return new $class( $arg1, $arg2 );
< /code>
Однако я действительно предпочитаю делать это умнее. Насколько я вижу, нет никакого способа использовать Call_user_func и Call_user_func_array, если я не забуду о конструкторе < /em> и инициализации его после экземпляра.return magic_func( 'className', array('one', 'two') );
Подробнее здесь: [url]https://stackoverflow.com/questions/22090084/create-a-class-based-on-a-string-and-pass-the-constructor-arguments-at-the-same[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия