У меня есть определённая функция которая принимает текст и что-то с ним делает(не важно).
Когда текст русский, всё работает как надо, а когда передаю английский текст, выпадает ошибка, сообщающая о том, что count срабатывает только на countable|array. При чём, когда я пишу строкой выше echo is_array на ту же переменную, в обоих случаях он возвращает true
Сам код:
<?php
function revert_characters($str) // Привет! Давно не виделись.
{
$words = explode(' ', $str);
$tags = array();
for ($i = 0; $i < count($words); $i++) {
$w = $words[$i];
$w_arr = preg_split('##u', $w, -1, PREG_SPLIT_NO_EMPTY);
echo is_array($w_arr); // тут всегда true
for ($j = 0; $j < count($w_arr); $j++) { // тут ошибка если $str английский
if (ctype_upper($w_arr[$j])) {
$tags['uppercase'][$j] = $w_arr[$j];
$w_arr = strtolower($w_arr[$j]);
} elseif (ctype_punct($w_arr[$j])) {
$tags['punct'][$j] = $w_arr[$j];
unset($w_arr[$j]);
}
}
$w_arr = array_reverse($w_arr);
$rev_w = implode('', $w_arr);
$words[$i] = $rev_w;
}
print_r($tags);
$rev_str = implode(' ', $words);
return $rev_str;
}