首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么这个对strstr的调用没有返回false?

为什么这个对strstr的调用没有返回false?
EN

Stack Overflow用户
提问于 2017-03-28 18:10:23
回答 1查看 2.2K关注 0票数 16

我在一个旧的遗留代码库中偶然发现了一个关于strstr的问题。有很多代码,但基本上测试用例可以归结为:

代码语言:javascript
复制
$value = 2660;
$link = 'affiliateid=1449&zoneid=6011&placement_id=11736&publisher_id=1449&period_preset=yesterday&period_start=2017-03-27&period_end=2017-03-27';

var_dump(strstr($link, $value));

我预计这将返回false,因为"2660“不在字符串中,但它返回d=1449&zoneid=6011&placement_id=11736&publisher_id=1449&period_preset=yesterday&period_start=2017-03-27&period_end=2017-03-27

我意识到$value应该是一个字符串,但我仍然不明白为什么PHP没有将它转换为字符串,也不明白为什么它会在链接中找到这个数字。

实际上,如果我尝试使用$value = '2660';,它会像预期的那样返回false

知道发生了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2017-03-28 18:13:51

我想这回答了你的问题:

如果指针不是字符串,则将其转换为整数并作为字符的序号值应用。

http://php.net/manual/en/function.strstr.php

由于注释而进行编辑:

chr(2660)返回字符d,这确实是大海捞针,这就是为什么它不会像您预期的那样返回false。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43066697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档