【PHP】字符串-访问子串

问题

想知道一个字符串是否包含一个特定的子串。例如,想查看一个email地址是否包含一个 @ 。

解决
if(strpos($_POST['email'],'@') === false) {    echo 'There was no @ in the e-mail address!';
}
讨论
  1. strpos()的返回值是子串在字符串中出现的第一个位置

  2. 如果字符串中根本没有子串, strpos() 将返回 false

  3. 如果子串位于这个字符串的起始位置,strpos() 将返回 0,因为位置 0 表示字符串的起始位置。

  4. 为了区别0false,必须使用 恒等操作符 ( === ) 或 非恒等操作符 ( !== )

  5. 上述例子中使用===strpos()的返回值与false比较。只有当strpos()返回false时这个测试才会成功,如果strpos()的返回0或者其他任何数,测试都不会成功

参考

strpos()有关文档