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

  • Автор темы Автор темы hayk
  • Дата начала Дата начала

hayk

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

В мануале про substr написано следующее:
string substr ( string string, int start [, int length])
Исходя из этого я предположил что
substr($str, $start)
идентично
substr($str, $start, NULL)
Но на деле оказалось что все не так.
Почему?
 
Неверное предположение. Опустить параметр и передать вместо него NULL - не одно и то же.
 
а документация на этот счет ничего не говорит?
молчит?
 
Хотя нет.
substr($str, $start)
идентично
substr($str, $start, strlen($str)-$start)
Документация, насколкьо я поняо, ничего об этом не говорит.
 
Посмотрел я исходники, получаетс так:
if ($start>0) substr($str, $start, strlen($str)-$start);
else substr($str, $start, -$start);
 
адидас, скажи, что тебе из строчки вырезать надо ?
 
Да мне ничего не надо вырезать.
Просто меня интересовало: какой код идентичен substr($str, $start), т.е. в случае когда третий параметр опущен.
 
Вот всегда меня радовали такие "академические" знания. Если нет третего параметра, то вырезается все до конца строки. Любой аналагичный код будет сложнее.
 
Demiurg
А меня всегда "радовали" такие ответы.
Что делается когда второй параметр опущен - я знаю. Меня же интересовало немного другое.
 
>Меня же интересовало немного другое.
что именно тебя интересовало ?
 
Сверху