Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PHP 5,6 3ed; листинг 9.14, функция strrpos
 
 автор: A1exander   (22.08.2010 в 17:16)   письмо автору
 
 

Здравствуйте.

Вот ломаю голову над этим листингом:

$var = strrpos("Hello world!","l");
echo $var; // 9

$var = strrpos("Hello world!","l", -10);
echo $var; // 2

$var = strrpos("Hello world!","l", 10);
echo $var; // FALSE

Я не могу понять как во второй строке получается 2?

  Ответить  
 
 автор: sim5   (22.08.2010 в 17:23)   письмо автору
 
   для: A1exander   (22.08.2010 в 17:16)
 

А что мануал говорит - если указан аргумент смещения и если он отрицателен?

  Ответить  
 
 автор: A1exander   (22.08.2010 в 17:52)   письмо автору
 
   для: sim5   (22.08.2010 в 17:23)
 

Здравствуйте.

В книге написано - "Необязательный третий параметр позволяет задать позицию, ограничивающую поиск, положительное значение с начала строки, отрицательное с конца"
Отсчет позиций я так понимаю идет с нуля..

$var = strrpos("Hello world!","l");
С конца символ "l" впервые встречается на 9 позиции.

$var = strrpos("Hello world!","l", 10);
В этом примере после 10-го символа "d" символа "l" нет.

Но не могу понять почему здесь получается 2, как работает функция,
$var = strrpos("Hello world!","l", -10);

Если я правильно понял то в строке:

Если +10 тогда первые 10 позиций не учитываются
Если -10 тогда последние 10 не учитываются
?

Третий параметр - 10 это индекс массива или кол-во символов?

  Ответить  
 
 автор: sim5   (22.08.2010 в 18:04)   письмо автору
 
   для: A1exander   (22.08.2010 в 17:52)
 

Начиная с PHP 5.0.0, необязательный аргумент offset позволяет указать, с какого по счету символа строки haystack начинать поиск. Отрицательное значение предписывает прекратить поиск при достижении определенной позиции до конца строки.

Парметр -10, означает, что поиск нужно прекратить при достижении позиции 10 символов от конца строки, то есть от начала это будет 2 (H-0, e-1, l-2).

  Ответить  
 
 автор: A1exander   (22.08.2010 в 18:11)   письмо автору
 
   для: sim5   (22.08.2010 в 18:04)
 

Не до конца понял, путал индекс и кол-во символов. Теперь ясно, Спасибо.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования