Реализация функции

147
13 февраля 2021, 18:40

Есть функция

function form_add($type, $name, $class = "", $id = "", $value = "")
{
    $class = strlen($class) > 0 ? "class='$class'" : 0;
    $id = strlen($id) > 0 ? "id='$id'" : 0;
    $value = strlen($value) > 0 ? "value='$value'" : 0;
    $form = "<input $class $id $value type='$type' name='$name' />";
    return $form;
} 

форма echo form_add('text','name');

хотелось бы.так

echo form_add('type'=>'text', 'name'=>'name');

Как реализовать?

Answer 1

Можно запилить что-то вроде этого:

function domSelfClosedElement($name, array $attrs = []) {
  $attrs = array_map(function($val, $key) { 
      return htmlspecialchars($key).'="'.htmlspecialchars($val).'"';
  }, array_values($attrs), array_keys($attrs));
  $attrs = implode(' ', $attrs);
  return "<$name $attrs/>";
}
echo domSelfClosedElement("input", ['name' => 'username', 'type' => 'text', 'class' => 'form-control']);
Answer 2
function form_add($array, $class = "", $id = "", $value = "")
{
$class = strlen($class) > 0 ? "class='$class'" : 0;
$id = strlen($id) > 0 ? "id='$id'" : 0;
$value = strlen($value) > 0 ? "value='$value'" : 0;
$form = "<input $class $id $value type='".$array['type']."' name='".$array['type']."' />";
return $form;
} 
echo form_add(['type' => 'text', 'name' => 'name']);
READ ALSO
Yii2 получить id не связанных записей

Yii2 получить id не связанных записей

Хочу получить все IDs не связанных записейНапример у меня есть 3 таблицы:

132
regexp взять meta теги php

regexp взять meta теги php

Пытаюсь взять мета-теги со страницы, в которых есть html разметка, например:

102
PHP не изменяется переменная

PHP не изменяется переменная

Проверял через консоль, что при обращении к этому коду через type=set&set=true isSending меняется на true, но если потом обратиться через type=get то переменная...

115
Ajax обновление input при нажатии на button кнопки

Ajax обновление input при нажатии на button кнопки

<?php echo $tdResultCard['idCart'] ?> нужно для того, чтобы не было похожих полей/кнопок, те

128