Интересное поведение substr

hayk

Новичок
Интересное поведение substr

В мануале про substr написано следующее:
string substr ( string string, int start [, int length])
Исходя из этого я предположил что
substr($str, $start)
идентично
substr($str, $start, NULL)
Но на деле оказалось что все не так.
Почему?
 

Найч

Алгоритмик :-)
Неверное предположение. Опустить параметр и передать вместо него NULL - не одно и то же.
 

hayk

Новичок
Тогда
substr($str, $start)
идентично
substr($str, $start, strlen($str)) ?
 

Фанат

oncle terrible
Команда форума
а документация на этот счет ничего не говорит?
молчит?
 

hayk

Новичок
Хотя нет.
substr($str, $start)
идентично
substr($str, $start, strlen($str)-$start)
Документация, насколкьо я поняо, ничего об этом не говорит.
 

hayk

Новичок
Посмотрел я исходники, получаетс так:
if ($start>0) substr($str, $start, strlen($str)-$start);
else substr($str, $start, -$start);
 

Demiurg

Guest
адидас, скажи, что тебе из строчки вырезать надо ?
 

hayk

Новичок
Да мне ничего не надо вырезать.
Просто меня интересовало: какой код идентичен substr($str, $start), т.е. в случае когда третий параметр опущен.
 

Demiurg

Guest
Вот всегда меня радовали такие "академические" знания. Если нет третего параметра, то вырезается все до конца строки. Любой аналагичный код будет сложнее.
 

hayk

Новичок
Demiurg
А меня всегда "радовали" такие ответы.
Что делается когда второй параметр опущен - я знаю. Меня же интересовало немного другое.
 

Demiurg

Guest
>Меня же интересовало немного другое.
что именно тебя интересовало ?
 
Сверху