当前位置: 首页 > 面试题库 >

PHP的5 strpos()返回0和false之间的区别?

空谦
2023-03-14
问题内容

if(strpos("http://www.example.com”,”http://www.")==0){ // do work}

我希望这能解决,但确实如此。但是当我这样做时会发生什么

if(strpos("abcdefghijklmnop","http://www.")==0){// do work}

这也传递到php 5上,因为据我所知,strpos返回false,它转换为0。

这是正确的思想/行为吗?如果是这样,在另一个字符串的开头测试该子字符串的解决方法是什么?


问题答案:

是的,这是正确的/预期的行为:

  • strpos``0字符串开头有匹配项时可以返回
  • false如果没有匹配项,它将返回

问题是你不应该==用来比较0false;您应该这样使用===

if(strpos("abcdefghijklmnop","http://www.") === 0) {

}

要么 :

if(strpos("abcdefghijklmnop","http://www.") === false) {

}

有关更多信息,请参见比较运算符

  • $a == $bTRUE如果$a等于$b
  • $a === $bTRUE如果$a等于$b,和 它们是相同类型的

并且,引用以下手册的页面strpos

这个函数可以返回布尔 FALSE,也可以返回其评估到非布尔值 FALSE,例如0""
请阅读布尔值部分以获取更多信息。
使用该===
运营商
的测试此函数的返回值。



 类似资料:
  • 问题内容: 这些通话实际上对会话意味着什么? 输出值 问题答案: 在服务方法内部,我们请求会话,并且所有事情都会自动获取,就像创建HttpSession对象一样。无需生成唯一的会话ID。无需创建新的Cookie对象。一切都会在后台自动发生。 调用请求对象的方法后,容器将立即创建会话的新对象,并生成一个唯一的会话ID来维护会话。该会话ID被传输回响应对象,以便每当客户端发出任何请求时,它也应将会话I

  • 问题内容: 假设我有一个具有不同值的列表,如下所示: 我想对其进行迭代,并检查每个元素是否不在某些禁止值列表中。例如,此列表为。 当我检查是否为False时,我得到了。我知道python会强制转换到此处- 但是我如何避免使用它并进行正确的检查-该值不在? 问题答案: 为了区分和之间的区别,您可以使用它们进行比较。是单例值,并且始终引用同一对象。要比较列表中的所有项目以确保它们不是,请尝试: 顺便说

  • 问题内容: PHP和Javascript有什么区别? 我知道一个是服务器端脚本,另一个是浏览器端。但是我要问的是,使用Javascript可以显示警报消息,我也可以简单地使用PHP来执行警报消息,而无需使用任何功能或使用if- else组合。 那么PHP和Javascript是排他性的吗,比如如果我使用一个,那么就不应该使用另一个,或者? 问题答案: 什么是differene黑白PHP和JavaS

  • 问题内容: 我正在编写一个PHP应用程序,我想确保它不会出现错误。 原始代码: 以下内容可以正常工作还是不建议使用? 有什么区别吗? 我再次查看了有关数据以及PHP.net中带有方括号的短数组方法,但不确定。 而且,简短的php标签是否适合回显?有版本问题吗?(提供在php.ini中启用) 问题答案: PHP> = 5.4支持以下功能: 这只是一个短语法,在 PHP <5.4中将不起作用。

  • 问题内容: 我对和感到困惑。我有两本PHP书。一个说它们是相同的,但是另一个说它们是不同的。我以为他们也一样。 他们不一样吗? 问题答案: 是按位与。请参见按位运算符。假设您这样做: 是逻辑AND。请参阅逻辑运算符。考虑一下这个真值表:

  • 问题内容: 据我了解,当JSF操作返回(空字符串)时,用户停留在当前页面上,但视图已刷新。但是,当操作返回时,用户仍停留在当前页面上,但旧视图已被重用。我的问题是: 上面的陈述正确(准确)吗? 如果是,那么这意味着什么?具体来说,使用一种对另一种对页面上的数据(例如,JSF UI组件中的值或存储在DataTable中的请求范围Bean中的数据)有什么影响? 在什么情况下应该使用一种而不是另一种?