Вкратце:
императивный язык specfies ряд инструкции, что компьютер выполняется в последовательности (делают это, затем сделайте это).
А декларативный язык объявляет ряд правил о том, из чего должны следовать выводы, какие исходные данные (например, если у Вас есть A, тогда результатом является B). Механизм применит эти правила к исходным данным и даст вывод.
А функциональный язык объявляет ряд математических / логических функций, которые определяют, как введенный переводится в выходной. например, f (y) = y * y. это является типом декларативного языка.
Вы можете получить все атрибуты заданного DomNode, используя свойство DomNode-> attributes , он вернет вам DOMNamedNodeMap , содержащий имена и значения атрибутов.
foreach ($node->attributes as $attrName => $attrNode) {
// ...
}
Если вы хотите получить имя и значения атрибутов (не атрибутNodes), вы должны вызвать свойство $attrNode>nodeValue объекта DOMNode.
$attributes = array();
foreach($element->attributes as $attribute_name => $attribute_node)
{
/** @var DOMNode $attribute_node */
$attributes[$attribute_name] = $attribute_node->nodeValue;
}