function capitalize_words()

in src/str/transform.php [46:75]


function capitalize_words(
  string $string,
  ?string $delimiters = null,
)[]: string {
  if ($string === '') {
    return $string;
  }
  if ($delimiters === null) {
    // Delimiters are defined by the locale
    return _Str\titlecase_l($string, /* locale = */ null);
  }

  $words = vec[];
  $offset = 0;
  $length = \strlen($string);
  while ($offset < $length) {
    $substr_len = \strcspn($string, $delimiters, $offset);
    $words[] = tuple(
      \substr($string, $offset, $substr_len),
      $offset + $substr_len < $length ? $string[$offset + $substr_len] : ''
    );
    $offset += $substr_len + 1;
  }

  $string = '';
  foreach ($words as list($word, $delimiter)) {
    $string .= namespace\capitalize($word).$delimiter;
  }
  return $string;
}