своеобразное поведение с функцией strrchr - PullRequest
0 голосов
/ 17 августа 2011

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

$test = 'example@hotmail.com';
echo strrchr($test,'@') ;

возвращает подстроку из "@", то есть @ hotmail.com, но если я ищу это "hot"

$test = 'example@hotmail.com';
echo strrchr($test,'example') ;

вместо tmail.com (я ожидал), почему он возвращает hotmail.com, и если я ищу другие шаблоны, результаты тоже странные.Спасибо

Ответы [ 2 ]

2 голосов
/ 17 августа 2011

При программировании обязательно ознакомьтесь с документацией.Функция strrchr () не делает то, что вы думаете:

Эта функция возвращает часть стога сена , которая начинается при последнем появлении needle и продолжается до конца haystack .

Если needle содержит более одного символа, используется только первый.Это поведение отличается от поведения strstr () .

Возможно, вы в первую очередь хотели использовать функцию strstr () .

1 голос
/ 17 августа 2011

Для поиска используется только первый символ, основываясь на документации php:

Если стрелка содержит более одного символа, используется только первый.Это поведение отличается от strstr ().

, см .: http://php.net/manual/en/function.strrchr.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...