public function attributes()
	{
		if (!is_array($this->attrs)) {
			return '';
		}

		$s = '';
		$attrs = $this->attrs;

		foreach ($attrs as $key => $value) {
			if ($value === NULL || $value === FALSE) {
				continue;

			} elseif ($value === TRUE) {
				if (static::$xhtml) {
					$s .= ' ' . $key . '="' . $key . '"';
				} else {
					$s .= ' ' . $key;
				}
				continue;

			} elseif (is_array($value)) {
				if (strncmp($key, 'data-', 5) === 0) {
					$value = json_encode($value);

				} else {
					$tmp = NULL;
					foreach ($value as $k => $v) {
						if ($v != NULL) { // intentionally ==, skip NULLs & empty string
							//  composite 'style' vs. 'others'
							$tmp[] = $v === TRUE ? $k : (is_string($k) ? $k . ':' . $v : $v);
						}
					}
					if ($tmp === NULL) {
						continue;
					}

					$value = implode($key === 'style' || !strncmp($key, 'on', 2) ? ';' : ' ', $tmp);
				}

			} elseif (is_float($value)) {
				$value = rtrim(rtrim(number_format($value, 10, '.', ''), '0'), '.');

			} else {
				$value = (string)$value;
			}

			$q = strpos($value, '"') === FALSE ? '"' : "'";
			$s .= ' ' . $key . '=' . $q
				. str_replace(
					['&', $q, '<'],
					['&amp;', $q === '"' ? '&quot;' : '&#39;', self::$xhtml ? '&lt;' : '<'],
					$value
				)
				. (strpos($value, '`') !== FALSE && strpbrk($value, ' <>"\'') === FALSE ? ' ' : '')
				. $q;
		}

		$s = str_replace('@', '&#64;', $s);

		return $s;
	}
public function attributes()
	{
		if (!is_array($this->attrs)) {
			return '';
		}

		$s = '';
		$attrs = $this->attrs;

		foreach ($attrs as $key => $value) {
			if ($value === NULL || $value === FALSE) {
				continue;

			} elseif ($value === TRUE) {
				if (static::$xhtml) {
					$s .= ' ' . $key . '="' . $key . '"';
				} else {
					$s .= ' ' . $key;
				}
				continue;

			} elseif (is_array($value)) {
				if (strncmp($key, 'data-', 5) === 0) {
					$value = json_encode($value);

				} else {
					$tmp = NULL;
					foreach ($value as $k => $v) {
						if ($v != NULL) { // intentionally ==, skip NULLs & empty string
							//  composite 'style' vs. 'others'
							$tmp[] = $v === TRUE ? $k : (is_string($k) ? $k . ':' . $v : $v);
						}
					}
					if ($tmp === NULL) {
						continue;
					}

					$value = implode($key === 'style' || !strncmp($key, 'on', 2) ? ';' : ' ', $tmp);
				}

			} elseif (is_float($value)) {
				$value = rtrim(rtrim(number_format($value, 10, '.', ''), '0'), '.');

			} else {
				$value = (string)$value;
			}

			$q = strpos($value, '"') === FALSE ? '"' : "'";
			$s .= ' ' . $key . '=' . $q
				. str_replace(
					['&', $q, '<'],
					['&amp;', $q === '"' ? '&quot;' : '&#39;', self::$xhtml ? '&lt;' : '<'],
					$value
				)
				. (strpos($value, '`') !== FALSE && strpbrk($value, ' <>"\'') === FALSE ? ' ' : '')
				. $q;
		}

		$s = str_replace('@', '&#64;', $s);

		return $s;
	}
public function attributes ( ) { if ( ! is_array ( $ this -> attrs ) ) { return '' ; } $ s = '' ; $ attrs = $ this -> attrs ; foreach ( $ attrs as $ key => $ value ) { if ( $ value === NULL || $ value === FALSE ) { continue ; } elseif ( $ value === TRUE ) { if ( static :: $ xhtml ) { $ s .= ' ' . $ key . '="' . $ key . '"' ; } else { $ s .= ' ' . $ key ; } continue ; } elseif ( is_array ( $ value ) ) { if ( strncmp ( $ key , 'data-' , 5 ) === 0 ) { $ value = json_encode ( $ value ) ; } else { $ tmp = NULL ; foreach ( $ value as $ k => $ v ) { if ( $ v != NULL ) { // intentionally ==, skip NULLs & empty string //  composite 'style' vs. 'others' $ tmp [ ] = $ v === TRUE ? $ k : ( is_string ( $ k ) ? $ k . ':' . $ v : $ v ) ; } } if ( $ tmp === NULL ) { continue ; } $ value = implode ( $ key === 'style' || ! strncmp ( $ key , 'on' , 2 ) ? ';' : ' ' , $ tmp ) ; } } elseif ( is_float ( $ value ) ) { $ value = rtrim ( rtrim ( number_format ( $ value , 10 , '.' , '' ) , '0' ) , '.' ) ; } else { $ value = ( string ) $ value ; } $ q = strpos ( $ value , '"' ) === FALSE ? '"' : "'" ; $ s .= ' ' . $ key . '=' . $ q . str_replace ( [ '&' , $ q , '<' ] , [ '&amp;' , $ q === '"' ? '&quot;' : '&#39;' , self :: $ xhtml ? '&lt;' : '<' ] , $ value ) . ( strpos ( $ value , '`' ) !== FALSE && strpbrk ( $ value , ' <>"\'' ) === FALSE ? ' ' : '' ) . $ q ; } $ s = str_replace ( '@' , '&#64;' , $ s ) ; return $ s ; }
Returns element's attributes.

@return string
@internal
Returns element s attributes .