我需要在字符串中找到特殊模板。其中一个字符串是:
@if($fabric->id == $product->fabric_id)<br />\r
当我尝试使用php函数 strpos 检查字符串中的@if
时,它会给我false
。链接到沙箱:
http://sandbox.onlinephpfunctions.com/code/f54c3a1c0124086833deccf4fbcb5e07b656fa93
但是当字符串在&#39; @ if&#39;之前有空格时,它可以正常工作。为什么? http://sandbox.onlinephpfunctions.com/code/55b2046ba7f4e1fdc88cf5fd4113e681b7dd4a75
答案 0 :(得分:4)
strpos()
返回您搜索的字符串的索引。在第一种情况下,它是0(零),因为@if
在最开始。当前面有空格时,位置为1(一)。令你困惑的是,条件语句中PHP(0)也被PHP解释为false
,而1(一)被解释为true
。
如果你想确保根本找不到字符串,甚至没有找到零位置,你需要使用严格的比较运算符:
if (strpos($str, '@if') === false) { echo 'Not found'; }