3

I would like to know the difference between the two different uses. I believe the difference in some what very subtle.

This is an explanation taken from the IBM reference manual. However maybe my english is bad, I just can't visualize the difference.

Maybe showing me an example of both cases would help me understand this better.

Here is the explanation from IBM :

The strchr subroutine returns a pointer to the first occurrence of the character specified by the Character (converted to an unsigned character) parameter in the string pointed to by the String parameter. A null pointer is returned if the character does not occur in the string. The null byte that terminates a string is considered to be part of the string.

The strrchr subroutine returns a pointer to the last occurrence of the character specified by the Character (converted to a character) parameter in the string pointed to by the String parameter. A null pointer is returned if the character does not occur in the string. The null byte that terminates a string is considered to be part of the string.

4

2 回答 2

10

strchr is an alias of strstr:

Returns part of haystack string starting from and including the first occurrence of needle to the end of haystack.

strrchr:

This function returns the portion of haystack which starts at the last occurrence of needle and goes until the end of haystack.

strchr starts at the first occurrence, strrchr starts at the last occurrence.

于 2013-03-31T02:01:50.440 回答
9

strchr finds the first occurrence and strrchr (r - reverse) finds the last occurrence of a character or string

$s = 'This is a test';
$first = strchr($s, 's');
$last = strrchr($s, 's');
  • $first contains s is a test
  • $last contains st
于 2013-03-31T02:05:15.577 回答