/** * Check recursively if there are duplicate $attr defined in children of $e * set global var $has_duplicate_attribute to true if there is, otherwise, set it to false */ public static function has_duplicate_attribute($e, $attr, &$id_array) { global $has_duplicate_attribute; if ($has_duplicate_attribute) { return; } foreach ($e->children() as $child) { $id_val = strtolower(trim($child->attr[$attr])); if ($id_val != "" && in_array($id_val, $id_array)) { $has_duplicate_attribute = true; } else { if ($id_val != "") { array_push($id_array, $id_val); } BasicChecks::has_duplicate_attribute($child, $attr, $id_array); } } }