📜  PHP中stristr()和strstr()函数的区别(1)

📅  最后修改于: 2023-12-03 14:45:27.924000             🧑  作者: Mango

PHP中stristr()和strstr()函数的区别

在PHP中,有两个内置函数可以用于搜索一个字符串中是否包含另一个字符串:stristr()strstr()。这两个函数表面上看起来很相似,但是它们之间有一些区别。

1. 功能
  • strstr()

    strstr()函数用于在一个字符串中查找另一个字符串,并返回第一个匹配到的字符串及其后面的所有字符。

  • stristr()

    stristr()函数和strstr()函数一样,也用于在一个字符串中查找另一个字符串。但是,不同的是,stristr()函数是不区分大小写的,也就是说,在查找匹配字符串时,它会忽略字符串中字母的大小写。

2. 参数

两个函数的参数都相同:

  • haystack:必需参数,要在其中查找的字符串。
  • needle:必需参数,要查找的字符串。如果needle是空字符串,则strstr()返回haystack中的全部字符串。如果needle没有找到,则返回false
3. 返回值

两个函数的返回值也有所不同:

  • strstr()

    如果找到了匹配的字符串,则返回该字符串及其后面的所有字符串。如果没有找到,则返回false

    $str = "I love PHP programming";
    echo strstr($str, "love"); // 输出 "love PHP programming"
    echo strstr($str, "Hate"); // 输出 false
    
  • stristr()

    如果找到了匹配的字符串,则返回该字符串及其后面的所有字符串。如果没有找到,则返回false

    $str = "I love PHP programming";
    echo stristr($str, "php"); // 输出 "PHP programming"
    echo stristr($str, "Hate"); // 输出 false
    
4. 区分大小写

最大的区别就是stristr()函数不区分大小写,而strstr()函数区分大小写。举个例子:

$str = "I love PHP programming";
echo strstr($str, "php"); // 输出 false
echo stristr($str, "php"); // 输出 "PHP programming"

在上面的例子中,因为strstr()区分大小写,所以在 $str 中找不到 "php",返回了false,而stristr()函数不区分大小写,所以在 $str 中找到了 "PHP programming"

5. 性能

虽然stristr()函数具有不区分大小写的优点,但是由于相应的字符串比较需要更多的计算量,因此在性能上相对较低。

6. 总结
  • 如果你想要查找一个字符串,同时区分大小写,那么就使用strstr()函数。
  • 如果你想要查找一个字符串,但是不想区分大小写,那么就使用stristr()函数。

以上是stristr()strstr()函数的区别。根据具体的情况,选择合适的函数使用。