Шаг 63.
Основы языка PHP.
Строки. Длина строки

    На этом шаге мы рассмотрим функцию, вычисляющую длину строки.

    На практике очень часто требуется узнать длину строки. Для этого в РНР имеется специальная функция strlen(), принимающая в качестве входных параметров строку и возвращающая ее длину виде целого числа.

    Ее общий вид следующий:


Рис.1. Общий вид функции strlen()

    Например:

<?php
$str = "Hello, World!";
$len = strlen($str);               // длина строки
for ($i=0; $i<=$len; $i++)   // посимвольный вывод строки
      {echo $str[$i];
      echo "<br>";
      }
?>
Текст этой программы можно взять здесь.

    Результат выполнения этой программы смотрите на рисунке 2.


Рис.2. Пример посимвольного вывода строки

    Первое, что бросается в глаза - это присутствие квадратных скобок, так, как они использовались при работе с массивами. Здесь нет ничего странного, так как в РНР, как и во многих других языках программирования, строку можно воспринимать как массив символов, проиндексированный целыми числами, начиная с нуля.

    Вернемся к нашему примеру. Сначала мы инициализируем строку, затем с помощью функции strlen() получаем ее длину в виде целочисленного значения, которое запишем в переменную $len. Далее создаем простой цикл for на $len итераций. У многих начинающих программистов часто возникает соблазн не использовать дополнительную переменную для хранения длины строки. Действительно, функцию strlen() можно записать прямо в определении цикла for. Например:

for ($i=0;$i<= strlen($str);$i++) {...}.

    Тем не менее, категорически не рекомендуется так делать. Во-первых, этот код работает медленнее, чем с использованием дополнительной переменной, так как приходится постоянно вызывать функцию strlen(). Во-вторых, длина строки может меняться в теле цикла, соответственно, поменяется количество итераций, что может повлиять на ход программы.

    В теле цикла нашей программы мы выводим один символ и выполняем перевод строки. Еще раз хочется обратить ваше внимание, что нумерация символов происходит с нуля.

    На следующем шаге мы рассмотрим функции, позволяющие сравнивать строки.




Предыдущий шаг Содержание Следующий шаг