Обнаружение конца строки без использования функций - PullRequest
3 голосов
/ 03 ноября 2011

Как узнать конец строки PHP?У меня одна задача: распознать длину строки без каких-либо функций.Я знаю, что все строки в PHP заканчиваются нулевым байтом (\0), но я не могу знать элементы строки после последнего символа.

Например, это не будет работать:

while($a[++$length]);

Как узнать длину строки без использования каких-либо функций?

Ответы [ 2 ]

14 голосов
/ 03 ноября 2011

В php строки не заканчиваются нулевым байтом. Например, $s = 'a';echo $s[1]; выдает предупреждение (поэтому не стоит тестировать с $a[$length] == ""). Кроме того, строки php могут содержать нулевые байты - это действительно байтовые массивы.

Однако вы можете использовать языковую конструкцию isset, чтобы проверить, будет ли при чтении значения $a[$length] выдано предупреждение:

$a = "a\0b\0c";
for ($length = 0;isset($a[$length]);$length++) ;
echo $length; // 5
4 голосов
/ 03 ноября 2011
$string = 'hello';
$length = 0;
while (isset($string[$length])) {
    $length++;
}
echo $length; //5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...